我正在使用带有.NET Core 3.0预览版的新Worker Service应用程序模板,并尝试使用该AddEventLog方法添加事件日志记录。但是,我无法通过Windows中的事件查看器看到任何日志。
我有一个非常简单的Worker应用程序设置,并已配置Program.cs文件登录,如下所示:
public static IHostBuilder CreateHostBuilder(string[] args) =>
Host.CreateDefaultBuilder(args)
.UseWindowsService()
.ConfigureLogging((context, logging) =>
{
logging.AddEventLog(new EventLogSettings()
{
SourceName = "MyTestSource",
LogName = "MyTestLog"
});
})
.ConfigureServices((hostContext, services) =>
{
services.AddHostedService<Worker>();
});
Run Code Online (Sandbox Code Playgroud)
然后,我在Worker.cs文件中有一些日志记录语句,如下所示:
private readonly ILogger<Worker> _logger;
public Worker(ILogger<Worker> logger)
{
_logger = logger;
}
public override async Task StartAsync(CancellationToken cancellationToken)
{
_logger.LogInformation($"Worker started at: {DateTime.Now}");
await base.StartAsync(cancellationToken);
}
public override async Task StopAsync(CancellationToken cancellationToken)
{
_logger.LogInformation($"Worker stopped at: {DateTime.Now}");
await base.StopAsync(cancellationToken); …Run Code Online (Sandbox Code Playgroud) 我正在尝试构建一个作为 Windows 服务运行并且能够记录到应用程序事件日志的 .NET Core WorkerService。
我没有收到任何错误或服务使用 sc create 然后 sc start 运行的任何内容,但我没有按预期在事件应用程序事件日志中得到任何信息。
我错过了什么?
using System;
using System.Collections.Generic;
using System.Linq;
using System.Threading.Tasks;
using Microsoft.Extensions.DependencyInjection;
using Microsoft.Extensions.Hosting;
using Microsoft.Extensions.Logging;
using Microsoft.Extensions.Logging.EventLog;
namespace FreshIQPrinterProxy
{
public class Program
{
public static void Main(string[] args)
{
CreateHostBuilder(args).Build().Run();
}
public static IHostBuilder CreateHostBuilder(string[] args) =>
Host.CreateDefaultBuilder(args)
.UseWindowsService()
.ConfigureLogging((context, logging) =>
{
logging.AddEventLog(new EventLogSettings()
{
SourceName = "MyApp"
});
})
.ConfigureServices((hostContext, services) =>
{
services.AddHostedService<Worker>();
});
}
}
Run Code Online (Sandbox Code Playgroud)
这是我的 Worker.cs 文件
using System;
using System.Collections.Generic; …Run Code Online (Sandbox Code Playgroud)