首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >WorkerService无法在部署机器上记录消息

WorkerService无法在部署机器上记录消息
EN

Stack Overflow用户
提问于 2022-03-29 17:28:53
回答 1查看 47关注 0票数 0

我正在C#中构建一个作为WorkerService运行的C#。在测试时,我能够很好地看到日志消息,因为有一个控制台窗口显示信息或错误消息。当我部署时,没有控制台窗口,因为这是一个没有GUI的服务。不过,我仍然希望记录信息性消息和错误。现在,我可以在事件查看器中看到显示服务启动、停止和显示任何错误的信息,但是我希望有一个日志文件,我可以向其中添加更详细的信息。以下是我的BackgroundWorker的样子。

代码语言:javascript
复制
public class WindowsBackgroundService : BackgroundService
{
    private readonly ILogger<WindowsBackgroundService> logger;

    public WindowsBackgroundService(ILogger<WindowsBackgroundService> logger)
    {
        this.logger = logger;
    }

    protected override async Task ExecuteAsync(CancellationToken stoppingToken)
    {
        //Logic would go here.
        logger.LogInformation($"New User {newCustomer.Firstname} {newCustomer.Lastname} Added");
    }
    await Task.Delay(TimeSpan.FromMinutes(1), stoppingToken);
}

这是我的Program.cs,以防有人好奇,或者它与它有任何关系。

代码语言:javascript
复制
var host = Host.CreateDefaultBuilder(args)
.UseWindowsService(options =>
{
    options.ServiceName = "Customer Broker Service";
})
.ConfigureServices(services =>
{
    services.AddHostedService<WindowsBackgroundService>();
})
.Build();

await host.RunAsync();

当我尝试在部署机器上运行服务时使用记录器时,它会使服务崩溃,因为没有控制台窗口来显示日志。我在想我错过了一些很简单的东西。

EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2022-03-29 20:11:02

您可以尝试使用Serilog,只需将Serilog nuget包包含在您的项目和代码中:

代码语言:javascript
复制
var host = Host.CreateDefaultBuilder(args)
.UseSerilog()
.UseWindowsService(options =>
{
    options.ServiceName = "Customer Broker Service";
})
.ConfigureServices((hostContext, services) =>
{
    Log.Logger = new LoggerConfiguration()
        .MinimumLevel.Debug()
        .WriteTo.RollingFile(@"C:\logs\log.txt", rollingInterval: RollingInterval.Day)
        .CreateLogger();
    services.AddHostedService<WindowsBackgroundService>();
})
.Build();

await host.RunAsync();

您需要确保路径“C:\log”存在,或者在上面的代码中相应地更改路径。您的工作代码不需要任何更改。

票数 1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/71666394

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档