使用web.config配置Serilog文件

时间:2020-03-29 20:07:06

标签: c# serilog

我正在尝试为.NET FW 4.7.1项目配置Serilog。这是我的web.config文件中的内容:

问题<appSettings> <add key="serilog:minimum-level" value="Debug" /> <add key="serilog:using:File" value="Serilog.Sinks.File" /> <!--<add key="serilog:write-to:File.path" value="C:\Logs" />--> (This will be dynamically generate, Per User) <add key="serilog:write-to:File.outputTemplate" value="{Timestamp:yyyy-MM-dd HH:mm:ss.fff zzz} [{Level:u4}] | ({**AppName**}) | {Message:lj}{NewLine}{Exception}" /> <add key="serilog:write-to:File.shared" value="true" /> <add key="serilog:write-to:File.rollingInterval" value="Day"/> <add key="serilog:enrich:with-property:AppName" value="MyApp" /> </appSettings> 不起作用

 var userlogPath =  Path.Combine("C:\Logs", $"User_{UserId}_.log"); // Logged in **UserId** will be passed.

 var logger = Log.Logger = new LoggerConfiguration()
      .ReadFrom.AppSettings()
      .WriteTo.File(userlogPath)
      .CreateLogger();

在代码中,

logger.Information("Test Log");

AppName //不考虑Web.Config中的 outputTemplate 。也不记录bundle exec rails server

1 个答案:

答案 0 :(得分:2)

不可能将XML配置与代码中的WriteTo.File()混合使用。

要么File.path需要用XML指定(如您所显示,注释掉),要么需要将File.outputTemplate之类的其他设置提供给WriteTo.File()。 / p>