是否可以指示 Serilog 将每个日志条目转储到单独的 json 文件中?
Is it possible to instruct Serilog to dump each log entry to a separate json file?
我正在开发一项服务,该服务必须将每个日志条目转储为单独的 json 文件。然后,所有这些转储的日志文件将被导入 ElasticSearch。我知道 ElasticSearch 接收器,但我的想法是在 ElasticSearch 不可用时不丢失日志。
一种解决方法是:
- 将 TextWriter 接收器与 StringWriter 一起使用;
- 将 StringWriter 内容转储到 json 文件;
- 并在每次调用后清除底层 StringBuilder。
还有其他解决方案吗?
为此需要添加 WriteTo.Sink(...)
的自定义 ILogEventSink
。我认为 Serilog 随附的 JsonFormatter
class 使实现起来相当快。
我正在开发一项服务,该服务必须将每个日志条目转储为单独的 json 文件。然后,所有这些转储的日志文件将被导入 ElasticSearch。我知道 ElasticSearch 接收器,但我的想法是在 ElasticSearch 不可用时不丢失日志。
一种解决方法是:
- 将 TextWriter 接收器与 StringWriter 一起使用;
- 将 StringWriter 内容转储到 json 文件;
- 并在每次调用后清除底层 StringBuilder。
还有其他解决方案吗?
为此需要添加 WriteTo.Sink(...)
的自定义 ILogEventSink
。我认为 Serilog 随附的 JsonFormatter
class 使实现起来相当快。