Интеграция с верхней панелью Serilog не работает
Я пытаюсь настроить простую конфигурацию ведения журнала для моей службы Windows, используя Topshelf и Serilog (пакет Serilog.Extras.Topshelf соответственно).
HostLogger.UseLogger(new SerilogHostLoggerConfigurator(new LoggerConfiguration()
.WriteTo.RollingFile(AppDomain.CurrentDomain.BaseDirectory + "\\logs\\app-{Date}.log")
.WriteTo.ColoredConsole()
.MinimumLevel.Debug()
.CreateLogger()));
HostFactory.Run(x => {
x.UseSerilog();
...
Служба работает нормально, однако выход не производится, ни на консоль, ни на указанный файл журнала (я вижу, что он создается, но он остается пустым). Кто-нибудь имеет опыт использования обеих фреймворков?
Ответы
Ответ 1
Второй вызов "x.UseSerilog()" сбрасывает TopShelf HostLogger для использования глобального экземпляра Serilog (Log.Logger), который вы не настроили.
Удалите второй вызов, и журнал должен начать работать.
Другой вариант - настроить глобальный регистратор:
Log.Logger = new LoggerConfiguration()
.WriteTo.RollingFile(AppDomain.CurrentDomain.BaseDirectory + "\\logs\\app-{Date}.log")
.WriteTo.ColoredConsole()
.MinimumLevel.Debug()
.CreateLogger();
HostFactory.Run(x => {
// configure TopShelf to use Serilog global instance.
x.UseSerilog();
}