CappedLog.hosting.extensions 2.2.5

Extension for logging (CappedLog) and scraping (Grafana.Loki) data

Install-Package CappedLog.hosting.extensions -Version 2.2.5
dotnet add package CappedLog.hosting.extensions --version 2.2.5
<PackageReference Include="CappedLog.hosting.extensions" Version="2.2.5" />
For projects that support PackageReference, copy this XML node into the project file to reference the package.
paket add CappedLog.hosting.extensions --version 2.2.5
The NuGet Team does not provide support for this client. Please contact its maintainers for support.

Implementation

Background worker to pushing Capped Log messages to Grafana.Loki server

Usage

A minimal example of configure a simple console application (require Microsoft.Extensions.Hosting)

static void Main(string[] args)
{
    using (var host = new HostBuilder()
        .ConfigureLogging(c => c.AddCappedLog())
        .ConfigureServices(c => c.AddHostedService<ExampleWorker>()
            .AddCappedLogLokiScrape().Configure<CappedLog.LokiConfig>(o =>
                {
                    o.ScrapeInterval = TimeSpan.FromSeconds(1);
                    o.Timeout = TimeSpan.FromSeconds(10);
                    o.Url = new Uri("http://localhost:3100/api/prom/push");
                }))
        .Build())
    {
        host.Run();
    }
}

class ExampleWorker : BackgroundService
{
    private readonly ILogger<ExampleWorker> _logger;

    public ExampleWorker(ILogger<ExampleWorker> logger) { _logger = logger; }

    protected override async Task ExecuteAsync(CancellationToken stoppingToken)
    {
        while (true)
        {
            stoppingToken.ThrowIfCancellationRequested();

            _logger.LogError(new IndexOutOfRangeException("error message 1"), "Error {}", "1");
            _logger.LogCritical(new EventId(1, "Code 1"), new DllNotFoundException("error message 1"), "Critical {}", "2");
            _logger.LogWarning(new EventId(2), "Warning {}", "3");

            await Task.Delay(2000);
        }

    }
}

Implementation

Background worker to pushing Capped Log messages to Grafana.Loki server

Usage

A minimal example of configure a simple console application (require Microsoft.Extensions.Hosting)

static void Main(string[] args)
{
    using (var host = new HostBuilder()
        .ConfigureLogging(c => c.AddCappedLog())
        .ConfigureServices(c => c.AddHostedService<ExampleWorker>()
            .AddCappedLogLokiScrape().Configure<CappedLog.LokiConfig>(o =>
                {
                    o.ScrapeInterval = TimeSpan.FromSeconds(1);
                    o.Timeout = TimeSpan.FromSeconds(10);
                    o.Url = new Uri("http://localhost:3100/api/prom/push");
                }))
        .Build())
    {
        host.Run();
    }
}

class ExampleWorker : BackgroundService
{
    private readonly ILogger<ExampleWorker> _logger;

    public ExampleWorker(ILogger<ExampleWorker> logger) { _logger = logger; }

    protected override async Task ExecuteAsync(CancellationToken stoppingToken)
    {
        while (true)
        {
            stoppingToken.ThrowIfCancellationRequested();

            _logger.LogError(new IndexOutOfRangeException("error message 1"), "Error {}", "1");
            _logger.LogCritical(new EventId(1, "Code 1"), new DllNotFoundException("error message 1"), "Critical {}", "2");
            _logger.LogWarning(new EventId(2), "Warning {}", "3");

            await Task.Delay(2000);
        }

    }
}

NuGet packages

This package is not used by any NuGet packages.

GitHub repositories

This package is not used by any popular GitHub repositories.

Version History

Version Downloads Last updated
2.2.5 149 10/10/2019