OrchardCore的所有示例都显示了嵌入到startup.cs文件中,但是有没有一种方法可以更早地在Program.cs中加载它呢?我正在尝试为Serilog设置一个模块,这样我就可以将它放到我的项目中,但也许这甚至是不可能的,我不知道。
发布于 2019-10-13 05:37:58
我在OrchardCore的github repo found here上得到了答案
编辑
后来我意识到这并没有真正回答我的问题,但是哦,好吧。把这个答案留在这里,以防它适合某人的需求。
下面是设置:
添加对OrchardCore.Logging.Serilog的引用
在appsettings.json中添加serilog配置
"Serilog": {
"MinimumLevel": {
"Default": "Warning",
"Override": {
"Default": "Warning",
"Microsoft": "Error",
"System": "Error"
}
},
"WriteTo": [
{
"Name": "Console",
"Args": {
"theme": "Serilog.Sinks.SystemConsole.Themes.AnsiConsoleTheme::Code, Serilog.Sinks.Console",
"outputTemplate": "{Timestamp:HH:mm:ss}|{TenantName}|{RequestId}|{SourceContext}|{Level:u3}|{Message:lj}{NewLine}{Exception}",
"restrictedToMinimumLevel": "Information"
}
},
{
"Name": "RollingFile",
"Args": {
"pathFormat": "app_data/logs/orchard-log-{Date}.txt",
"outputTemplate": "{Timestamp:yyyy-MM-dd HH:mm:ss.ffff}|{TenantName}|{RequestId}|{SourceContext}|{Level:u3}|{Message:lj}{NewLine}{Exception}",
"restrictedToMinimumLevel": "Warning"
}
}
]
}修改program.cs以使用Serilog
public static IWebHost BuildWebHost(string[] args)
=> WebHost.CreateDefaultBuilder(args)
.UseSerilogWeb()
.UseStartup<Startup>()
.Build();修改startup.cs以在LogContext中包含TenantName
using OrchardCore.Logging;
public void Configure(IApplicationBuilder app, IHostingEnvironment env)
{
if (env.IsDevelopment())
{
app.UseDeveloperExceptionPage();
}
app.UseStaticFiles();
app.UseOrchardCore(c => c.UseSerilogTenantNameLoggingMiddleware());
}https://stackoverflow.com/questions/58238993
复制相似问题