相关疑难解决方法(0)

如何为.NET Core 3.0 Worker服务设置事件日志

我正在使用带有.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)

c# logging worker .net-core

5
推荐指数
1
解决办法
492
查看次数

如何在作为 Window 服务运行的 .NET Core WorkerService 中启用事件日志记录

我正在尝试构建一个作为 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)

c# windows-services .net-core

0
推荐指数
1
解决办法
980
查看次数

标签 统计

.net-core ×2

c# ×2

logging ×1

windows-services ×1

worker ×1