NLog с VS 2008 Unit Test

Я пытаюсь зарегистрировать некоторые записи в файле журнала (Log.Trace/Log.Debug), пока работает VS unit test. Я также скопировал файл NLog.config в каталог через атрибут DeploymentItem над классом. Тем не менее мой файл журнала не создается. Любая помощь в том, как мы можем записывать записи в файл так же, как мы делаем для обычного веб-приложения.

2 ответа

Я только что нашел решение этой проблемы: Добавьте файл App.config в проект yout unit test со следующим содержимым:

<!--?xml version="1.0" encoding="utf-8" ?-->
<configuration>
 <configsections>
 </configsections></configuration><section name="nlog" type="NLog.Config.ConfigSectionHandler, NLog"><code>
 
 <nlog xmlns="http://www.nlog-project.org/schemas/NLog.xsd" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance">
 <targets>
 <target name="debugLog" xsi:type="Console">
 </target></targets>
 <rules>
 
 </rules>
 </nlog>

</code>
<p>Вы можете поместить любую конфигурацию по своему желанию, как в файле NLog.config.</p></section>


К сожалению, это единственное решение XML в то время. Тем не менее, речь идет не только об модульном тестировании. NLog.config не работает с каким-либо консольным приложением.

Не знаю, является ли это по дизайну или просто надзором. Во всяком случае, я бы не сказал, что перемещение NLog.config в раздел App.config любым способом удовлетворительно =/

Возможно, стоит заметить, что есть возможность конфигурировать nlog непосредственно из кода, что может быть полезно в некоторых сценариях. Можно также с удовольствием найти опцию debug nlog, которая будет регистрировать весь процесс обработки конфигурационного файла, регистрации целей и т.д....

Чтобы включить его, просто добавьте атрибуты internalLogFile и internalLogLevel в элемент nlog:

или из кода:

InternalLogger.LogFile = @"c:\logs\nlog.txt";
 InternalLogger.LogLevel = LogLevel.Trace;

licensed under cc by-sa 3.0 with attribution.