Serilog LoggerConfiguration 按上下文写入不同的 Sink
Serilog LoggerConfiguration write to different Sink by context
我有 Web asp.net MVC 应用程序使用 IdentityServer3
。
我想将日志记录拆分到不同的 Sink。
我想将 IdentityServer3
记录到 Trace
、EventLog("IdentityServer3")
和 SerilogWeb.Classic.Enrichers
到数据库 MSSqlServer
。
我的配置是:
Log.Logger = new LoggerConfiguration()
.WriteTo.Trace()
.WriteTo.EventLog("IdentityServer3")
.Enrich.FromLogContext()
//all after this i want to write in database
.WriteTo.MSSqlServer("connectionString", "Log")
.Enrich.With(new HttpRequestIdEnricher())
.Enrich.With(new HttpRequestRawUrlEnricher())
.Enrich.With(new HttpRequestUserAgentEnricher())
.Enrich.With(new UserNameEnricher())
.CreateLogger();
要将事件的子集写入接收器,请使用 WriteTo.Logger()
和 Filter
指令。每个案例都是相似的;这是身份服务器之一:
Log.Logger = new LoggerConfiguration()
.WriteTo.Logger(lc => lc
.Filter.ByIncludingOnly(Matching.FromSource("IdentityServer3"))
.WriteTo.Trace()
.WriteTo.EventLog("IdentityServer3"))
// <snip>
您可以在最外层应用丰富器,以便它们丰富所有事件,或者在嵌套记录器配置之一上应用。
我有 Web asp.net MVC 应用程序使用 IdentityServer3
。
我想将日志记录拆分到不同的 Sink。
我想将 IdentityServer3
记录到 Trace
、EventLog("IdentityServer3")
和 SerilogWeb.Classic.Enrichers
到数据库 MSSqlServer
。
我的配置是:
Log.Logger = new LoggerConfiguration()
.WriteTo.Trace()
.WriteTo.EventLog("IdentityServer3")
.Enrich.FromLogContext()
//all after this i want to write in database
.WriteTo.MSSqlServer("connectionString", "Log")
.Enrich.With(new HttpRequestIdEnricher())
.Enrich.With(new HttpRequestRawUrlEnricher())
.Enrich.With(new HttpRequestUserAgentEnricher())
.Enrich.With(new UserNameEnricher())
.CreateLogger();
要将事件的子集写入接收器,请使用 WriteTo.Logger()
和 Filter
指令。每个案例都是相似的;这是身份服务器之一:
Log.Logger = new LoggerConfiguration()
.WriteTo.Logger(lc => lc
.Filter.ByIncludingOnly(Matching.FromSource("IdentityServer3"))
.WriteTo.Trace()
.WriteTo.EventLog("IdentityServer3"))
// <snip>
您可以在最外层应用丰富器,以便它们丰富所有事件,或者在嵌套记录器配置之一上应用。