Я создал пример приложения Windows для тестирования NLog. Я просто пишу весь уровень сообщений внутри цикла while (Trace, Debug, Warn &). Я установил autoReload='true'
, а также указал minlevel="Debug"
в файле конфигурации NLog. Это нормально работает и печатает все сообщения.NLog autoreload не работает
Я хотел протестировать опцию автозагрузки и, следовательно, изменил минимальный уровень на «Warn» вручную в файле конфигурации, чтобы регистрировать только предупреждающие сообщения во время работы приложения, но все же все сообщения регистрируются, а не только регистрируются. Предупреждать и Сообщения об ошибках.
Но если я перезапущу приложение, он берет из конфига и печатает только сообщения уровня предупреждения и ошибки. Что касается моего понимания, основанного на link, NLog должен перезагрузить конфигурацию по мере ее изменения и начать печатать журналы на основе текущих изменений конфигурации. Не уверен, что не так. Должен ли я программно перезагрузить конфигурацию? Пожалуйста помоги. Ниже мой код,
NLog.config
<?xml version="1.0" encoding="utf-8" ?>
<nlog xmlns="http://www.nlog-project.org/schemas/NLog.xsd"
xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
xsi:schemaLocation="http://www.nlog-project.org/schemas/NLog.xsd NLog.xsd"
autoReload="true"
throwExceptions="true"
internalLogLevel="Trace" internalLogFile="c:\temp\nlog-internal.log" >
<targets>
<target name="FileLogger" xsi:type="File" archiveAboveSize="1048576" fileName="Trace.log" archiveNumbering="DateAndSequence" />
</targets>
<rules>
<logger name="*" writeTo="FileLogger" minlevel="Debug" />
</rules>
</nlog>
LogMessage Код сниппета
private void LogMessages(CancellationToken token)
{
try
{
while (true)
{
logger.Debug("*********** Debug *************");
logger.Trace("----------- Trace --------------");
logger.Warn("~~~~~~~~~~~ Warn ~~~~~~~~~~~~~~");
logger.Error("========== Error =============");
if (token.IsCancellationRequested)
break;
}
}
catch (Exception ex)
{
throw ex;
}
}
Я подозревал ли это происходит из-за потока/задачи и начал работать непосредственно с основной поток, но проблема все еще сохраняется. Я также попытался включить внутреннее ведение журнала NLog для просмотра любых ошибок, но не нашел ничего подозрительного.
Как вы получаете свой «регистратор»? – Amy
Вы редактируете файл конфигурации в своем проекте или один из каталога bin \ Debug или bin \ Release? –
Я редактировал проект. Это была глупая ошибка. Благодарю. Он работает, когда я редактирую из каталога Release. – Reuben