Сконфигурируйте приемник Serilog File в настройках приложения, чтобы использовать один файл журнала для каждого запуска приложения - PullRequest
0 голосов
/ 05 февраля 2020

Я хочу, чтобы новый файл журнала создавался при каждом запуске моего приложения.

Я прочитал ответ на аналогичный вопрос, заданный здесь , однако этот ответ относится к настройке Serilog в коде C#, тогда как я хочу настроить его в моих настройках приложения.

Как настроить Serilog через мои настройки приложения, чтобы он создавал новый файл при каждом запуске приложения?

Моя текущая конфигурация:

    "Serilog": {
        "Using":  ["Serilog.Sinks.File"],
        "MinimumLevel": "Debug",
        "WriteTo": [
            { 
            "Name": "File",
            "Args": { 
                "path": "Logs/MyAppLog.txt" ,
                "outputTemplate": "{Timestamp:yyyy-MM-dd HH:mm:ss.fff zzz} [{Level}] ({SourceContext}) {Message}{NewLine}{Exception}",
                "rollingInterval" : null // Throws ArgumentException
                "retainedFileCountLimit": null // Does nothing
                }
            }
        ],
        "Enrich": ["FromLogContext", "WithMachineName", "WithThreadId"],
        "Properties": {
            "Application": "TetriSharp.Application"
        }
      }

Как связанный вопрос, возможно ли добавить дату и время к имени файла, который создает Serilog? В идеале, мне нужно включить дату и время в секундах и миллисекундах, поскольку вполне возможно, что приложение может запускаться дважды за одну секунду (хотя и маловероятно). Спецификаторы формата имени файла, упомянутые в readme , не работают, так как они приводят к включению в имя файла строки {Hour}, {HalfHour} et c. Кроме того, они, кажется, не включают в себя секунды / миллисекунды.

Есть идеи?

...