Как отформатировать Serilog с помощью CompactJsonFormatter? - PullRequest
0 голосов
/ 03 декабря 2018

Я использую Serilogs для ведения журнала и CompactJsonFormatter для форматирования.Вывод в журналах (здесь для лучшей читаемости):

{
    "@t": "2018-12-03",
    "@mt": "{@Diagnostic}",
    "Diagnostic": {
        "ShutdownReason": "HostingEnvironment",
        "Timestamp": "2018-12-03",
        "MachineName": "local",
        "AdditionalInfo": {},
        "$type": "IqhApplicationEndEvent"
    }
}

Как видно из журналов, имя класса $type":"IqhApplicationEndEvent" отображается в конце.Как я могу отформатировать это, чтобы быть первым свойством в журналах?До "ShutdownReason":"HostingEnvironment".Также $type генерируется автоматически, как я могу изменить это имя на другое?

ILogger:

public void WriteAudit(DiagnosticTest diagnostic)
{
    _Logger?.Write(LogEventLevel.Information, "{@Diagnostic}", diagnostic);
}

public static void AddRollingFileConfiguration(this LoggerConfiguration loggerConfiguration,
            LogConfigurationElement configurationSettings)
{
    if (configurationSettings.LogType == LogType.RollingFile)
        if (configurationSettings.Async)
            loggerConfiguration.WriteTo.Async(
                a => a.RollingFileAlternate(
                    new CompactJsonFormatter(),
                    configurationSettings.LogDirectory,
                    fileSizeLimitBytes: configurationSettings.FileSizeLimitBytes,
                    retainedFileCountLimit: configurationSettings.RetainedFileCountLimit
                )
            );
}
...