首页 > 其他分享 >关于net core 开发服务时,使用Serilog根据appsettings.json输出日志错误的问题。

关于net core 开发服务时,使用Serilog根据appsettings.json输出日志错误的问题。

时间:2023-02-17 15:46:02浏览次数:33  
标签:core Console Log Serilog appsettings BaseDirectory 日志 ex

使用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

相关文章