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

  • 相关阅读:
    Spring Boot 自定义starter
    jvm中的年轻代 老年代 持久代 gc
    nginx反向代理服务器端口问题
    ACE Editor在线代码编辑器简介及使用引导
    Linux下MySQL 5.6.24的编译安装与部署
    C3p0的参数
    Mysql 查看连接数,状态
    linux下mysql定时备份数据库
    Mysql中存储方式的区别
    mysql常用语句
  • 原文地址:https://www.cnblogs.com/wjx-blog/p/15075621.html
Copyright © 2011-2022 走看看