簡體   English   中英

.net 核心控制台應用程序 - serilog 寫入 bin/debug 文件夾

[英].net core console app - serilog write to bin/debug folder

我正在使用 .net5 控制台應用程序並將 serilog 設置為記錄到 Logs/log.txt,但不是寫入 rootFolder/Logs/log.txt,而是寫入到 bin/debug 文件夾。

編輯:我附上代碼:

在 appsettings.json 它看起來像這樣:

   {
      "Name": "File",
       "Args": {
        "path": "Logs\log.txt",
      }
   }

程序.cs

static void Main(string[] args)
        {
            var configuration = new ConfigurationBuilder()
                .AddJsonFile("appSettings.json", true, true)
                .Build();
 
            var serviceCollection = new ServiceCollection()
                .AddLogging(builder => builder.AddSerilog(
                    new LoggerConfiguration()
                        .ReadFrom.Configuration(configuration)
                        .CreateLogger()))
                .BuildServiceProvider();

            var logger = serviceCollection.GetService<ILogger<Program>>();


            logger.LogInformation("hello from Serilog");
            Console.ReadLine(); 
        }

有什么想法嗎?

在 program.cs 文件中試試這個

Log.Logger = new LoggerConfiguration()
                        .Enrich.FromLogContext()
                        .Enrich.WithProperty("Application", "MyApp")
                        .MinimumLevel.Override("Microsoft", LogEventLevel.Warning)
                        .MinimumLevel.Override("System", LogEventLevel.Warning)
                    .WriteTo.File("Logs/log.log", 
                    outputTemplate: "{Timestamp:yyyy-MM-dd HH:mm:ss.fff zzz} [{Level:u3}] {Message:lj}{NewLine}{Exception}",
                    rollingInterval: RollingInterval.Hour)
                    .CreateLogger();

和 appsettings 文件

 "Logging": {
"LogLevel": {
  "Default": "Information",
  "Microsoft": "Warning",
  "Microsoft.Hosting.Lifetime": "Information"
}

},

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM