NetCore-Serilog 按模块区分日志目录

本文详细介绍了如何使用Serilog配置模块特定的日志记录,包括利用pathFormat和LogEvent属性创建按模块划分的文件夹,以及通过Filter功能实现灵活的日志筛选。并通过示例展示了如何为不同模块设置不同的日志路径和命名规则。

前段时间,项目有需求,需要将某些模块的日志单独记录文件夹,于是找了一下Serilog的目录配置。

如果是按照appsetting来配置,节点内容大概如下:

{
        "Name": "RollingFile",
        "Args": {
          "pathFormat": "Logs/Warning/{Date}.txt",
          "RestrictedToMinimumLevel": "Warning",
          "rollingInterval": "Day",
          "outputTemplate": "{Timestamp:yyyy-MM-dd hh:mm:ss} || {Level} || {SourceContext:l} || {Message} || {Exception} || end {NewLine}"
        }
}

看这个样子,pathFormat只能根据日期来区分,再看看如果在程序内配置如何:

Log.Logger = new LoggerConfiguration()
                .Enrich.FromLogContext()
                .MinimumLevel.Warning() // 生产最小记录级别
                .WriteTo.Logger(lg => lg.Filter.ByIncludingOnly(p => p.Level == LogEventLevel.Debug).WriteTo.File(LogFilePath("Debug"), rollingInterval: RollingInterval.Day, outputTemplate: SerilogOutputTemplate))

网上找到例子,看上去Filter只能控制Level来区分目录,每个Level一个目录,还是不符合我的需求。

不过后来看到了Filter筛选对象是LogEvent,那么可以根

评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
红包 添加红包
表情包 插入表情
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值