NLog ReconfigExistingLoggers создать новый журнал? - PullRequest
0 голосов
/ 07 октября 2019

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

Сейчас я пытаюсь использовать тот же код в новом приложении, и он создает новый файл журнала вместо простого переименования текущего. Например, у меня сейчас есть два файла (2019-10.07.log и 2019-10-07_CompanyName.log). Журнал по умолчанию будет иметь несколько начальных записей журнала, а затем остальные журналы переходят в новый.

Ищу любые предложения. Я искал исправления, но все указывает мне на код, который я уже использую.

NLog v4.6.7

fileNameOnly = "CompanyName";
FileTarget defaultTarget = FindNLogTargetByName("DefaultTarget");
defaultTarget.FileName = logDirectory + string.Format("{0:yyyy-MM-dd}", DateTime.Now) + "_" + fileNameOnly + ".log";

LogManager.ReconfigExistingLoggers();

1 Ответ

0 голосов
/ 07 октября 2019

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

Так что для имени файла вам нужно использовать System.IO.File.Move(path, pathnew) и изменить NLog.

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

...