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);
        }

    }
}

GitHub repositories

This package is not used by any popular GitHub repositories.

Version History

Version Downloads Last updated
2.2.5 121 10/10/2019