-
Notifications
You must be signed in to change notification settings - Fork 4
/
Copy pathTopshelfSerilogBootstrapper.cs
38 lines (34 loc) · 1.26 KB
/
TopshelfSerilogBootstrapper.cs
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
namespace StarterKit.Service.Configuration
{
using MassTransit.SerilogIntegration;
using Serilog;
using System;
using System.Diagnostics;
using Topshelf.Logging;
public class TopshelfSerilogBootstrapper
{
public TopshelfSerilogBootstrapper()
{
// Common Initial
var loggerConfiguration = new LoggerConfiguration()
.Enrich.FromLogContext()
.Enrich.WithEnvironmentUserName()
.Enrich.WithMachineName()
.MinimumLevel.Is(Serilog.Events.LogEventLevel.Debug)
.MinimumLevel.Override("MassTransit", Serilog.Events.LogEventLevel.Warning)
.WriteTo.Console()
.WriteTo.AzureDocumentDB(
"https://<yourcosmodb>.documents.azure.com:443/",
Environment.GetEnvironmentVariable("CosmoDbAuthKey"),
"Logs",
"StarterKitDoSomeWork",
timeToLive: 86400);
// Common Final
Log.Logger = loggerConfiguration.CreateLogger();
// Configure Topshelf Logger
SerilogLogWriterFactory.Use(Log.Logger);
// MassTransit to use Serilog
SerilogLogger.Use();
}
}
}