Serilog的使用

我用的.net 6 

1.nuget安装serilog

 2.在appsettings.json中加入下面的内容

    "Serilog": {
        "MinimumLevel": {
            "Default": "Debug", //最小日志记录级别
            "Override": { //系统日志最小记录级别
                "Default": "Warning",
                "System": "Warning",
                "Microsoft": "Warning"
            }
        },
        "WriteTo": [
            { "Name": "Console" }, //输出到控制台
            {
                "Name": "Async", //异步写入日志
                "Args": {
                    "configure": [
                        {
                            "Name": "File", //输出文件
                            "Args": {
                                "path": "log/log.txt",
                                "outputTemplate": "{NewLine}Date:{Timestamp:yyyy-MM-dd HH:mm:ss.fff}{NewLine}LogLevel:{Level}{NewLine}Class:{SourceContext}{NewLine}Message:{Message}{NewLine}{Exception}",
                                "rollingInterval": "3" //日志文件生成精度:1:年  2:月 3:日 4:小时
                            }
                        }
                    ]
                }
            }
        ]
    }

3.在program.cs 最上面加入下面的代码


string Dir1 =  DateTime.Now.ToString("yyyy-MM-dd")  ;
string Dir2 = DateTime.Now.ToString("yyyy-MM-dd HH");

Log.Logger = new LoggerConfiguration()
    .MinimumLevel.Debug()
    .MinimumLevel.Override("Microsoft", LogEventLevel.Information)
    .ReadFrom.Configuration(new ConfigurationBuilder()
    .AddJsonFile("appsettings.json")
    .Build())
    .Enrich.FromLogContext()
    .WriteTo.Async(c => c.File(Path.Combine(AppDomain.CurrentDomain.BaseDirectory + $"/Slog/{Dir1}/{Dir2}/", $"log.txt"), rollingInterval: RollingInterval.Hour))
    .WriteTo.Async(c => c.Console())
    .CreateLogger();

4.程序中使用方法

 Log.Logger.Information("GetComStatus");

4.下面是生成的日志

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值