Serilog - 多个日志文件

2024-01-27

我正在使用 Serilog 进行日志记录,但无法弄清楚如何将日志事件分离到不同的文件。例如,我想将错误记录到 error_log-ddmmyyyy.txt 并将警告记录到 warn_log-ddmmyyyy.txt。

这是我的记录器配置:

Log.Logger = new LoggerConfiguration()
            .WriteTo.Logger(lc =>
                lc.Filter.ByIncludingOnly(Matching.WithProperty("Level", "Warning"))
                    .WriteTo.RollingFile(
                        Path.Combine(AppDomain.CurrentDomain.BaseDirectory, @"Logs\warn_log-{Date}.txt"),
                        outputTemplate: OutputTemplate))
            .WriteTo.Logger(lc =>
                lc.Filter.ByIncludingOnly(Matching.WithProperty("Level", "Error"))
                    .WriteTo.RollingFile(
                        Path.Combine(AppDomain.CurrentDomain.BaseDirectory, @"Logs\error_log-{Date}.txt"),
                        outputTemplate: OutputTemplate))
            .CreateLogger();

仅当我在日志消息中准确指定 {Level} 属性时,它才有效。

我试图使用:

Matching.WithProperty<LogEventLevel>("Level", l => l == LogEventLevel.Warning)

但它也不起作用。


我使用以下配置,它对我有用:

            Log.Logger = new LoggerConfiguration()
                    .MinimumLevel.Debug()
                    .WriteTo.LiterateConsole()
                    .WriteTo.Logger(l => l.Filter.ByIncludingOnly(e => e.Level == LogEventLevel.Information).WriteTo.RollingFile(@"Logs\Info-{Date}.log"))
                    .WriteTo.Logger(l => l.Filter.ByIncludingOnly(e => e.Level == LogEventLevel.Debug      ).WriteTo.RollingFile(@"Logs\Debug-{Date}.log"))
                    .WriteTo.Logger(l => l.Filter.ByIncludingOnly(e => e.Level == LogEventLevel.Warning    ).WriteTo.RollingFile(@"Logs\Warning-{Date}.log"))
                    .WriteTo.Logger(l => l.Filter.ByIncludingOnly(e => e.Level == LogEventLevel.Error      ).WriteTo.RollingFile(@"Logs\Error-{Date}.log"))
                    .WriteTo.Logger(l => l.Filter.ByIncludingOnly(e => e.Level == LogEventLevel.Fatal      ).WriteTo.RollingFile(@"Logs\Fatal-{Date}.log"))
                    .WriteTo.RollingFile(@"Logs\Verbose-{Date}.log")
                    .CreateLogger();
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

Serilog - 多个日志文件 的相关文章

随机推荐

  • Ruby on Rails、Paperclip、Heroku、GitHub 和 AWS - 保护密钥

    我正在使用 Heroku 托管的 RoR 我想使用回形针将文件存储在 s3 上 我的源代码托管在 github 上 全世界都可读 对世界其他地方保密密钥的最佳做法是什么 Paperclip 建议将访问密钥存储在配置文件 或代码 中 例如我有
  • 使用单链表,如何在python中交换节点?

    目前 我一直在尝试根据我的主功能开关 myList index 重新排列链表 def createList plist linkedList None goes backwards adding each element to the be
  • 使用 XPath 提取标签之间的文本(包括标记)

    我有以下 XML 片段 span class st In Tim em Power em Politieman span 我想提取之间的部分 span 标签 为此 我使用 XPath span class st 然而 这将提取所有内容 包括
  • 设置 ContentPresenter 中自动生成的文本块的样式

    正如我所看到的 很多人都遇到了这个问题 但我不明白为什么我的案例不起作用 它开始让我发疯 背景 我有一个DataGrid将根据每个单元格的值着色 因此 我有一个动态样式来解析每个单元格使用的实际模板 背景现在可以相应地工作 新问题 当我有深
  • 在会话状态中存储购物车的数据

    尝试将我存储的内容添加到购物车中以进入会话 然后将其转移到另一个页面以获取 GridView 以显示我已添加到购物车会话中的所有项目 将其存储为对象会话 AddToCart 获取该行详细信息并存储在会话中 然后获取该会话对象并将其显示在另一
  • HTML5 CANVAS:如何从服务器保存和重新打开图像

    我用 html5 canvas 画一些东西 然后我想保存它 当再次加载页面时 我想将我保存的图像加载回画布 我成功地将数据保存到服务器中的文件中 但由于某种原因 这是一个奇怪的文件 无法通过ant软件打开 当然也不能通过我的画布打开 我将其
  • 使用 f#/fable/asp.net/react 添加 google 登录按钮

    我正在使用 SAFE 堆栈 https safe stack github io https safe stack github io 并通过示例 dojo 到目前为止非常棒 我想扩展该示例以包含一个通过 Google 登录 身份验证的按钮
  • JavaScript 基于原型的继承的好例子

    我使用 OOP 语言进行编程已经有 10 多年了 但我现在正在学习 JavaScript 这是我第一次遇到基于原型的继承 我倾向于通过研究好的代码来学得最快 正确使用原型继承的 JavaScript 应用程序 或库 的编写良好的示例是什么
  • 如何将 ASP.Net Webforms 网站与 ASP.Net MVC Web 应用程序集成?

    我如何在一个主网站 例如 www example com 下运行这两个网站 该网站是使用 Visual Studio ASP Net MVC Web 应用程序项目编写和部署的 并且 ASP Net Web 表单网站将从主站点的子目录 例如
  • Windows批处理命令创建备份文件夹和替换文件夹

    我需要使用日期时间戳备份现有文件夹 并将其替换 删除并重新创建 为文件夹内的新内容 有人有脚本可以做到这一点吗 我尝试了以下代码 其中 ApplicationDeploymentFolderPath servername foldernam
  • 如何拟合 3D 数据

    我有一个 3D 点列表 我想将其拟合到一个球体 R 2 x x0 2 y y0 2 z z0 2 所以我想 我应该表达 z 并用 4 个参数 x0 y0 z0 和 R 拟合 2D 数据 z sqrt R 2 x x0 2 y y0 2 z0
  • Exchange Web 服务错误 - 远程服务器返回错误 405 方法不允许

    我正在尝试通过交换网络服务发送邮件 我查了一下msdn并找到了一些帮助 每次我尝试运行此代码时 我都会收到上述错误 我尝试几乎到处阅读 ExchangeService service new ExchangeService Exchange
  • 我们可以在Windows中通过命令提示符运行mysql查询吗?

    我们可以从 Windows 命令提示符运行 MySQL 查询吗 如果是这样 我们该如何做到这一点并通过命令提示符处理查询结果 尝试使用mysql MySQL 命令行工具 http dev mysql com doc refman 5 5 e
  • Windows 8 - .NET TCP AcceptAsync 回调未触发(被 Console.ReadLine() 阻止)

    我遇到了 Windows 8 和 VS2012 特有的问题 我有一个 TCP 套接字服务器和客户端 正在本地网络上进行一些测试 使用 sysinternals TCPView 我可以看到数据包从 TCP 客户端发送并到达 TCP 服务器 我
  • 从变量中打印 unicode 字符(swift)

    我有一个问题找不到解决方案 我有一个字符串变量保存unicode 1f44d 我想将其转换为unicode字符 通常人们会做这样的事情 println u 1f44d 我的意思是 let charAsString 1f44d code in
  • 如何在 Spring Boot 中为 Camel 配置 Jackson ObjectMapper

    我正在尝试使用 Jackson 在 Camel 路由上将 POJO 与 JSON 进行序列化和反序列化 其中一些具有 Java 8 LocalDate 字段 我希望将它们序列化为 YYYY MM DD 字符串 而不是整数数组 我们的 Spr
  • 如何声明 C# 记录类型?

    I read 在博客上 https www codeproject com Articles 1131035 New Features of CsharpC 7 将提供记录类型 class studentInfo string Studen
  • 为什么不能重载类模板?

    Reading 这个问题 https stackoverflow com q 11964089 20984让我想知道 是否存在禁止类模板重载的技术原因 通过重载 我的意思是拥有多个具有相同名称但参数不同的模板 例如 template
  • NSFetchRequest 核心数据 Swift 3 向后兼容性

    我已经在 swift 3 中转换了我的代码 我在我的应用程序中使用核心数据 如您所知 NSFetchRequest 已更改 在 swift 2 中是 let request NSFetchRequest entityName Unsynce
  • Serilog - 多个日志文件

    我正在使用 Serilog 进行日志记录 但无法弄清楚如何将日志事件分离到不同的文件 例如 我想将错误记录到 error log ddmmyyyy txt 并将警告记录到 warn log ddmmyyyy txt 这是我的记录器配置 Lo