Можно ли поручить Serilog сбросить каждую запись журнала в отдельный файл JSON?
Я занимаюсь разработкой сервиса, который должен выводить каждую запись в журнал как отдельный файл json. Затем все эти выгруженные файлы журнала будут импортированы в ElasticSearch. Я знаю о приемнике ElasticSearch, но идея не в том, чтобы терять журналы, когда ElasticSearch недоступен.
Один из обходных путей:
- Использовать приемник TextWriter со StringWriter;
- Записать содержимое StringWriter в файл json;
- И очищать лежащий в основе StringBuilder после каждого вызова.
Любые другие решения?
1 ответ
Решение
Обычай ILogEventSink
добавлено с WriteTo.Sink(...)
нужен для этого. JsonFormatter
Я думаю, что класс, поставляемый с Serilog, делает это довольно быстрым для реализации.