使用Serilog输出日志时,配置内容如下,
"Serilog": { "Using": [ "Serilog.Sinks.Console", "Serilog.Sinks.File" ], "MinimumLevel": "Debug", "WriteTo": [ { "Name": "Console" }, { "Name": "File", "Args": { "path": "Logs/log.txt", "rollingInterval": "Day", "fileSizeLimitBytes": "10485760" "retainedFileCountLimit": 5, "rollOnFileSizeLimit": true } } ], "Enrich": [ "FromLogContext", "WithMachineName", "WithThreadId" ], "Properties": { "Application": "Sample" } },
输入日志目录在调试时是在项目路径下的,但是当发布后,输入日志则在C:\Windows\System32下,此问题的修复方法为在Main启动时,添加
Environment.CurrentDirectory = AppContext.BaseDirectory;
则可以修复这个问题。完整代码如下。
public static void Main(string[] args) { Environment.CurrentDirectory = AppContext.BaseDirectory; try { Log.Information("Starting web host"); CreateHostBuilder(args).Build().Run(); } catch (Exception ex) { Log.Fatal(ex, "Host terminated unexpectedly"); } finally { Log.CloseAndFlush(); } }
标签:core,Console,Log,Serilog,appsettings,BaseDirectory,日志,ex From: https://www.cnblogs.com/acore/p/17130389.html