使用 Serilog 将每个 Id 记录到不同的日志文件

Use Serilog to log to a different Log File per Id

我在 ASP.NET Core 中使用 Serilog,它与 Microsoft Logging Extension 一起使用效果很好。该应用程序正在启动不同的工作流程。每个工作流都有自己的 ID,该 ID 将在申请期间生成 运行。

现在每个工作流都将数据记录到全局日志中,我想将每个从工作流生成的日志消息记录到单独的日志文件 (e.q.[workflowid].log)。

从文档看来,添加文件似乎只能在记录器创建期间进行。还有其他方法可以实现吗?

您可以为文件接收器创建一个包装器,根据某些 属性 过滤传递给它的事件。这可能不会太难,Serilog 是开源的。

有一个预先存在的库看起来可以为您执行此操作,Serilog.Sinks.Map