从 .net core 创建的 Windows 微服务使用不会将日志写入路径

Windows microservice created from .net core using does not write logs to path

提问人:arbck90 提问时间:10/19/2023 更新时间:11/6/2023 访问量:33

问:

从 .net core 创建的 Windows 微服务使用不会将日志写入路径

我从 c# .net core 创建了一个 Windows 服务,该服务在 appsettings.json中使用 Serilog.Sinks.Async.File,如下所示

"Serilog": {
"Using": [
"Serilog.Sinks.Async"
],
"WriteTo": [
{
"Name": "Async",
"Args": {
"configure": [
{
"Name": "File",
"Args": {
"restrictedToMinimumLevel": "Information",
"path": "%PROGRAMDATA%/logs/file.log",
"rollingInterval": "Day",
"formatter": "Serilog.Formatting.Compact.CompactJsonFormatter, Serilog.Formatting.Compact"
}
}
]
}
},

上面的配置只是appsettings.json的一个片段,但它也包括其中设置的其他标准参数。

请告诉我作为本地系统运行的 Windows 服务是否可以将日志写入通过 appsettings.json 配置的 %PROGRAMDATA% 路径。如果在 Program.cs 中将其配置为服务的一部分,则同一日志文件有效

Log.Logger = new LoggerConfiguration()
.MinimumLevel.Override("Microsoft", LogEventLevel.Information)
.Enrich.FromLogContext()
.Destructure.UsingAttributes()
.WriteTo.Async(a =>
a.File(Environment.ExpandEnvironmentVariables("%PROGRAMDATA%\logs\file.log"))
.WriteTo.Console()
.CreateBootstrapLogger()
ASP.net-core 日志记录 windows-services serilog-sinks-file serilog-aspnetcore

评论


答:

0赞 Qiang Fu 11/3/2023 #1

此日志记录有效。
Serilog.AspNetCore Microsoft.Extensions.Hosting.WindowsServices

var builder = Host.CreateDefaultBuilder(args);
builder.UseSerilog((hostingContext, services, loggerConfiguration) => loggerConfiguration
                        .ReadFrom.Configuration(hostingContext.Configuration));
builder.ConfigureServices(services =>
    {
        services.AddHostedService<Worker>();
        services.AddWindowsService();
    });

var host =builder.Build();
host.Run();
  "Serilog": {
    "MinimumLevel": {
      "Default": "Information",
      "Override": {
        "Microsoft": "Warning",
        "Microsoft.Hosting.Lifetime": "Information"
      }
    },
    "WriteTo": [
      {
        "Name": "File",
        "Args": {
          "path": "%PROGRAMDATA%/Logs/log.txt",
          "rollingInterval": "Day",
          "restrictedToMinimumLevel": "Information"
        }
      },

测试
enter image description here