Исключение журнала Serilog и другие свойства

Я реализую Serilog в приложении службы WCF. В моем Global.asax я пытаюсь настроить глобальный регистратор для печати времени журнала, идентификатора потока, любых исключений, которые могут быть зарегистрированы, и дополнительных свойств в формате json, включенных в события.

Мои настройки журнала:

Log.Logger = new LoggerConfiguration()
    .Enrich.WithThreadId()
    .Enrich.WithThreadName()
    .Enrich.WithExceptionDetails()
    .Enrich.FromLogContext()
        .WriteTo.File(
            path: "\\LogFiles\\Gateway\\gateway-properties-.log", 
             rollingInterval: RollingInterval.Day, 
            outputTemplate: "{Timestamp:HH:mm} [{Level}] ({ThreadId}) {Message}{NewLine}{Exception} {Properties:j}")
    .CreateLogger();
Log.Information("Initilizing Application");

Когда я смотрю на журнал, созданный для информационного события во фрагменте, он выглядит так

16:28 [Information] (1) Initilizing Application
{}

Когда я пытаюсь зарегистрировать исключение:

throw new Exception("This is a forced exception");
...
catch (Exception ex)
{
    Log.Fatal("Application could not be started", ex);
}

Я вижу это в журнале:

16:28 [Fatal] (1) Application could not be started
{}

Я ожидал увидеть сообщение об исключении и трассировку стека, включенную в элемент журнала.

В другом месте я пытаюсь зарегистрировать успешное выполнение запроса:

Log.Information("Transaction {0} successfully processed", request.TransactionId, request); 

И я вижу:

16:40 [Information] (8) Transaction "the correct transaction ID" successfully processed
{}

Очевидно, я неправильно настраиваю или не регистрирую события должным образом.

Конкретные вопросы

  • Вопрос 1: Что-нибудь в моей конфигурации противоречит желаемому результату?
  • Вопрос 2: автоматически ли Serilog включает фигурные скобки для свойств, даже если они не включены в событие журнала? (пустой {} после журнала)
  • Вопрос 3. Когда я предоставляю свойства, почему они включаются в интерполированное поле, но не в раздел свойств журнала?
  • Вопрос 4: Нужна ли мне дополнительная настройка для включения деталей исключения?

0 ответов

Другие вопросы по тегам