Fer*_*mez 12 logging asp.net-core asp.net-core-2.0
我有一个 ASP.NET Core 2 Web 应用程序正在部署到生产环境,并且需要启用日志来排除错误。我在文档中找不到有关 appsettings.json 记录器部分中的架构的任何位置。这是我那里有的:
"Logging": {
"IncludeScopes": false,
"LogLevel": {
"Default": "Debug",
"System": "Information",
"Microsoft": "Information" }
,"Console": { "IncludeScopes": "true" }
}
Run Code Online (Sandbox Code Playgroud)
当我从控制台运行 exe 时,日志信息显示在控制台中,但实体框架也在记录日志,因此我看不到自己的消息,因为显示的输出量有限。因此,我需要将日志输出到一个文件,例如 C:\temp\my.log。如何配置 ASP.NET Core 2 来执行此操作?
提前致谢。
因此,我需要将日志输出到一个文件,例如 C:\temp\my.log。如何配置 ASP.NET Core 2 来执行此操作?
Serilog 有一个用于此目的的包。
dotnet add package Serilog.Extensions.Logging.File
Run Code Online (Sandbox Code Playgroud)
我们这样配置。
public void ConfigureServices(IServiceCollection services)
{
services.AddLogging();
}
public void Configure(IApplicationBuilder app, ILoggerFactory loggerFactory)
{
loggerFactory.AddFile("C:\\temp\\my.log");
}
Run Code Online (Sandbox Code Playgroud)
另请参阅:https://nblumhardt.com/2016/10/aspnet-core-file-logger/
这个问题好像和你的要求一样。
您还可以尝试使用 NLog 将日志输出到文件。它还可以确定其配置文件中日志的布局。
安装后,在startup.cs中,设置日志文件夹:
public void Configure(IApplicationBuilder app, IHostingEnvironment env, ILoggerFactory loggerFactory)
{
GlobalDiagnosticsContext.Set("configDir", "C:\\git\\damienbod\\AspNetCoreNlog\\Logs");
GlobalDiagnosticsContext.Set("connectionString", Configuration.GetConnectionString("NLogDb"));
loggerFactory.AddNLog();
app.UseMvc();
}
Run Code Online (Sandbox Code Playgroud)
然后在nlog.config中,设置fileName:
<target xsi:type="File" name="allfile" fileName="${gdc:item=configDir}\nlog-all.log"/>
Run Code Online (Sandbox Code Playgroud)
归档时间: |
|
查看次数: |
24149 次 |
最近记录: |