РЕДАКТИРОВАТЬ: Ниже принятый ответ работает частично . Он откладывает создание файла, но не учитывает минимум LogEventLevel
(поскольку отложенная строка вызывается всякий раз, когда ведется запись в журнал, даже если в итоге она не записывает данные в файл). Тем не менее, она выполняет sh мою всеобъемлющую цель «не создавать пустых файлов» (и я буду просто регистрировать ошибки в своем приложении), поэтому я сохраняю это как принятый ответ.
Мой окончательный вариант код выглядит так:
new LoggerConfiguration().WriteTo.Map("", "", (_, writeTo) => writeTo.File("SampleName.log")).CreateLogger();
У меня есть простое консольное приложение, в котором я использую Serilog и приемник файлов:
new LoggerConfiguration().WriteTo.File("SampleName.log", LogEventLevel.Error).CreateLogger();
В идеале, я бы хотел только это создать файл журнала на диске, когда есть что регистрировать (ошибки в моем сценарии). Однако, если приложение работает и завершается без ошибок, Serilog все равно создаст пустой файл. Есть ли способ поручить Serilog только создать файл, когда ему есть что регистрировать?