RError.com

RError.com Logo RError.com Logo

RError.com Navigation

  • 主页

Mobile menu

Close
  • 主页
  • 系统&网络
    • 热门问题
    • 最新问题
    • 标签
  • Ubuntu
    • 热门问题
    • 最新问题
    • 标签
  • 帮助
主页 / 问题 / 883035
Accepted
Aldmi
Aldmi
Asked:2020-09-19 16:48:20 +0000 UTC2020-09-19 16:48:20 +0000 UTC 2020-09-19 16:48:20 +0000 UTC

如何在 Serilog 中设置一堆几个日志级别和记录源?

  • 772

你好,我的WPF项目一直都是用的Nlog,Linux下有AspNetCore上的项目,我决定尝试用Serilog替换标准的logger(因为看了不同项目的代码AspNetCore,on GitHub,几乎每个人都用Serilog)。

在研究了文档和示例之后,我创建了一个测试项目,在那里我实现了记录器实例被创建并DI Autofac通过 Autofac 扩展集成到容器中。那些。现在我可以解决ILog我需要的地方并获取记录器实例serilog。

我对如何设置记录器有要求:

  1. MinimumLevel = Info,写入 Main.log(主要工作日志)
  2. Level = Debug,写在debug.json中(调试日志写在json中(因为可以保存对象的状态)只有Debug级别的调试信息)
  3. 报告专用日志,写在report.csv(报告用Excel)

    记录器是这样设置的:

    Log.Logger = new LoggerConfiguration()
        .MinimumLevel.Debug()
        .MinimumLevel.Override("Microsoft", LogEventLevel.Information)
        .Enrich.FromLogContext()
        .WriteTo.Console()
        .WriteTo.File("log-.txt", rollingInterval: RollingInterval.Day)
        .CreateLogger();
    

一个 MinimumLevel 对应于多个 WriteTo 源和所有!

那些。一份记录器只能解决 3 个任务中的一个?以及如何设置Level,而不是MinimumLevel?

那些。对于我的每项任务,我LoggerConfiguration通过构建器创建自己的 ILogger 实例并将其注入必要的服务中?

对于第 3 号任务,我认为为需要某种统计信息的每个服务创建一个单独的记录器实例是合乎逻辑的,但我想将第 1 号和第 2 号任务结合起来,轻松转移这个实例通过 Autofac 记录整个系统。

使用 Nlog,我可以在一个记录器实例中解决所有任务。

c#
  • 1 1 个回答
  • 10 Views

1 个回答

  • Voted
  1. Best Answer
    mals
    2020-03-15T23:57:30Z2020-03-15T23:57:30Z

    子记录器用于写入多个文件,请参阅使用子记录器的 Serilog 2.0 冒险。在这种情况下,可以过滤消息Filter

    Log.Logger = new LoggerConfiguration()
        .MinimumLevel.Debug()
        .WriteTo.File("Main.log")
        .WriteTo.Logger(lc => lc
            .Filter.ByIncludingOnly(le => le.Level == LogEventLevel.Debug)
            .WriteTo.File(new JsonFormatter(), "debug.json"))
        .WriteTo.Logger(lc => lc
            .WriteTo.File(new MyCsvFormatter(), "report.csv"))
        .CreateLogger();
    

    另请参阅Serilog :记录到不同的文件

    • 1

相关问题

Sidebar

Stats

  • 问题 10021
  • Answers 30001
  • 最佳答案 8000
  • 用户 6900
  • 常问
  • 回答
  • Marko Smith

    是否可以在 C++ 中继承类 <---> 结构?

    • 2 个回答
  • Marko Smith

    这种神经网络架构适合文本分类吗?

    • 1 个回答
  • Marko Smith

    为什么分配的工作方式不同?

    • 3 个回答
  • Marko Smith

    控制台中的光标坐标

    • 1 个回答
  • Marko Smith

    如何在 C++ 中删除类的实例?

    • 4 个回答
  • Marko Smith

    点是否属于线段的问题

    • 2 个回答
  • Marko Smith

    json结构错误

    • 1 个回答
  • Marko Smith

    ServiceWorker 中的“获取”事件

    • 1 个回答
  • Marko Smith

    c ++控制台应用程序exe文件[重复]

    • 1 个回答
  • Marko Smith

    按多列从sql表中选择

    • 1 个回答
  • Martin Hope
    Alexandr_TT 圣诞树动画 2020-12-23 00:38:08 +0000 UTC
  • Martin Hope
    Suvitruf - Andrei Apanasik 什么是空? 2020-08-21 01:48:09 +0000 UTC
  • Martin Hope
    Air 究竟是什么标识了网站访问者? 2020-11-03 15:49:20 +0000 UTC
  • Martin Hope
    Qwertiy 号码显示 9223372036854775807 2020-07-11 18:16:49 +0000 UTC
  • Martin Hope
    user216109 如何为黑客设下陷阱,或充分击退攻击? 2020-05-10 02:22:52 +0000 UTC
  • Martin Hope
    Qwertiy 并变成3个无穷大 2020-11-06 07:15:57 +0000 UTC
  • Martin Hope
    koks_rs 什么是样板代码? 2020-10-27 15:43:19 +0000 UTC
  • Martin Hope
    Sirop4ik 向 git 提交发布的正确方法是什么? 2020-10-05 00:02:00 +0000 UTC
  • Martin Hope
    faoxis 为什么在这么多示例中函数都称为 foo? 2020-08-15 04:42:49 +0000 UTC
  • Martin Hope
    Pavel Mayorov 如何从事件或回调函数中返回值?或者至少等他们完成。 2020-08-11 16:49:28 +0000 UTC

热门标签

javascript python java php c# c++ html android jquery mysql

Explore

  • 主页
  • 问题
    • 热门问题
    • 最新问题
  • 标签
  • 帮助

Footer

RError.com

关于我们

  • 关于我们
  • 联系我们

Legal Stuff

  • Privacy Policy

帮助

© 2023 RError.com All Rights Reserve   沪ICP备12040472号-5