zoukankan      html  css  js  c++  java
  • 【一】、.net core 3.1 创建windows服务并集成Serilog的步骤记录

    1、新建项目

      选择“Worker Service”,如下图:

    2、添加nuget引用

      Microsoft.Extensions.Hosting.WindowsServices

      Serilog.Extensions.Hosting

      Serilog.Sinks.Console

      Serilog.Sinks.File

    3、修改Program的Main方法

            public static void Main(string[] args)
            {
                var baseDir = AppDomain.CurrentDomain.BaseDirectory;
                var logfile = Path.Combine(baseDir, "log", "log.txt");
                Log.Logger = new LoggerConfiguration()
                    .MinimumLevel.Override("Microsoft", LogEventLevel.Warning)
                    .Enrich.FromLogContext()
                    .WriteTo.Console(LogEventLevel.Information, theme: AnsiConsoleTheme.Literate)
                    .WriteTo.File(logfile, LogEventLevel.Information, rollingInterval: RollingInterval.Day, retainedFileCountLimit: 90)
                    .CreateLogger();
                try
                {
                    Log.Information("服务启动成功!" + DateTime.Now.ToString());
                    CreateHostBuilder(args).Build().Run();
                }
                catch (Exception e)
                {
                    Log.Fatal(e, "启动出错了!");
                }
                finally
                {
                    Log.CloseAndFlush();
                }
            }

    4、修改Program里的CreateHostBuilder

    代码如下:

            public static IHostBuilder CreateHostBuilder(string[] args) =>
                Host.CreateDefaultBuilder(args)
                .UseWindowsService()
                .ConfigureServices((hostContext, services) =>
                {
                    services.AddHostedService<Worker>();
                })
                .UseSerilog();

    5、测试Worker里的日志记录功能

            protected override async Task ExecuteAsync(CancellationToken stoppingToken)
            {
                while (!stoppingToken.IsCancellationRequested)
                {
                    _logger.LogInformation("Worker running at: {time}", DateTimeOffset.Now);
                    await Task.Delay(1000, stoppingToken);
                }
            }

    上面的代码是visual在创建项目时自带的,直接运行,就会在log文件夹里新建日志文件,然后记下日志如下:

      示例代码地址:https://download.csdn.net/download/jiancaixing/20629212

  • 相关阅读:
    shell脚本
    Dockerfile
    【剑灵攻略】003、XXXfragment that is not a fragment错误,fragment认不出来
    【剑灵攻略】002、android工程引用方式
    【剑灵攻略】001、底部菜单栏实现
    ViewPager动画切换
    android raw与assets区别
    android+eclipse+maven环境搭建
    解决在IE8中无法使用原生JSON的问题
    Windows Phone Toast通知
  • 原文地址:https://www.cnblogs.com/wjx-blog/p/15075621.html
Copyright © 2011-2022 走看看