Обработчик NLog OnNewLogFile? - PullRequest
       8

Обработчик NLog OnNewLogFile?

1 голос
/ 21 февраля 2020

Есть ли какой-нибудь обработчик событий или аналогичный, который я могу подключить для запуска некоторого кода каждый раз, когда NLog запускает новый файл журнала?


У меня есть NLog Config, подобный этому:

    <target name="logfile" xsi:type="File"
            fileName="[stuff]"
            layout="[more Stuff]"
            maxArchiveFiles="4"
            archiveAboveSize="102400"  />

И я бы хотел добавить некоторые метаданные в начале каждого файла журнала (номер версии, имя машины и т. Д. c. Чтобы каждый файл журнала содержал некоторую контекстную информацию)

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

Это вещь?

Ответы [ 3 ]

2 голосов
/ 21 февраля 2020

Похоже, вы действительно ищете заголовок для FileTarget.

<target name="logfile" xsi:type="File">
         <header>--- ${assembly-version} started on ${longdate} ---</header>
</target>

См. Также https://github.com/NLog/NLog/wiki/File-target

Некоторые объединяют его с archiveOldFileOnStartup="true", поскольку заголовок печатается только при создании файла (убедитесь, что перезапуск приложения создаст новый файл).

1 голос
/ 21 февраля 2020

Еще одно частичное решение проблемы "Какая версия?" аспект этой проблемы может исходить из:

https://github.com/NLog/NLog/wiki/AssemblyVersion-Layout-Renderer

1 голос
/ 21 февраля 2020

Вы можете использовать FileSystemWatcher .

FileSystemWatcher наблюдает за указанным каталогом c (который вам нужен). Если новый файл создан, обработайте это событие с помощью FileSystemWatcher

Для более подробной информации: https://docs.microsoft.com/en-us/dotnet/api/system.io.filesystemwatcher?view=netframework-4.8

...