Использование консоли для просмотра информации NLog - PullRequest
1 голос
/ 17 сентября 2011

Это может быть действительно глупый вопрос, но здесь мы идем.У меня есть следующий файл NLog.config в моем веб-приложении, но как / когда открывается диалоговое окно и отображается информация, или мне нужно запустить его и перейти к определенному каталогу или чему-то еще?

<nlog xmlns="http://www.nlog-project.org/schemas/NLog.netfx35.xsd"
      xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance">
  <targets>
    <target xsi:type="ColoredConsole"
            name="Debug"
            layout="${message} ${exception}">
      <highlight-row backgroundColor="Black"
                     foregroundColor="DarkCyan"
                     condition="true"/>
    </target>
  </targets>
  <rules>
    <logger name="Raven.Client.*" writeTo="Debug"/>
  </rules>
</nlog>

Ответы [ 3 ]

7 голосов
/ 23 апреля 2015

На самом деле, вы можете создать консоль параллельно неконсольной программы, используя этот код:

static public class LogConsole
{
    static public void Instantiate()
    {
        AllocConsole();
    }

    [DllImport("kernel32.dll", SetLastError = true)]
    [return: MarshalAs(UnmanagedType.Bool)]
    static private extern bool AllocConsole();
}
3 голосов
/ 23 сентября 2011

NLog не откроет диалоговое окно, в которое будут сбрасывать свои сообщения, вы в основном потеряете все данные, которые он записывает. По крайней мере, это мое понимание; Консоль и ColoredConsole полезны только для консольных приложений. Лучше всего, чтобы выходные данные были помещены в файл Используйте что-то вроде этого:

<targets>
    <target name="file" xsi:type="File" fileName="${basedir}/log.txt" />
</targets>

<rules>
    <logger name="*" minlevel="Info" writeTo="file" />
</rules>

Это создаст текстовый файл с именем log.txt в базовом каталоге вашего приложения и запишет в него все сообщения с минимальным уровнем информации (в основном все). О, кстати, у вас может быть несколько целей и правил, работающих одновременно; посмотрите здесь для получения дополнительной информации.

0 голосов
/ 23 сентября 2011

Вы должны включить minLevel в разделе правил ведения журнала (что вы забыли).Это сообщает регистратору о самом низком уровне сообщения, которое должно быть зарегистрировано.Чтобы было ясно:

<rules>
    <logger name="Raven.Client.*" minlevel="Info" writeTo="Debug" />
</rules>
...