#c# #.net #serilog #serilog-sinks-file #serilog.extensions.logging.file
Вопрос:
Я хочу использовать Serilog для записи журналов, созданных различными приложениями (.NET framework), в общий файл с заголовками. Требуется, чтобы файл был разделен после достижения определенного предела байтов
https://github.com/serilog/serilog-sinks-file объясняет, как можно выполнять запись в общий файл из нескольких приложений, используя shared: true
в WriteTo.File()
методе конфигурацию регистратора
https://github.com/cocowalla/serilog-sinks-file-header объясняет, как добавлять заголовки, используя hooks
в WriteTo.File()
методе, в конфигурации регистратора Оба этих отдельных файла поддерживают разделение (переходящие файлы) с помощью fileSizeLimitBytes
Я настроил регистратор как:
Log.Logger = new LoggerConfiguration()
.Enrich.FromLogContext()
.WriteTo.File(path, rollOnFileSizeLimit: true, fileSizeLimitBytes:5000,
retainedFileCountLimit: null, shared: true,
outputTemplate:"{Level} {Timestamp:yyyy-MM-dd HH:mm:ss.fff} {Message} {MachineName}{NewLine}",
hooks: new HeaderWriter("Level Timestamp Message MachineName"))
.CreateLogger();
Но я получил сообщение об ошибке Unhandled Exception: System.ArgumentException: File lifecycle hooks are not currently supported for shared log files
Есть ли способ объединить обе функции и добавить заголовки в переходящие файлы, созданные serilog, которые совместно используются несколькими приложениями?
Комментарии:
1. Вы не задали вопрос. Я предполагаю, что это будет «как мне поделиться файлом журнала и записать заголовки». Подсказка — вы получите гораздо лучшие ответы, если попытаетесь вставить фрагменты своего кода и описать, какая у вас проблема. StackExchange может быть довольно жестким, если люди не попытаются первыми и не поделятся тем, что они попробовали.
2. Пожалуйста, предоставьте достаточно кода, чтобы другие могли лучше понять или воспроизвести проблему.