VS 2010 log4net MSTest MSUnit не входит в консоль (но нормально записывается в файл) - PullRequest
1 голос
/ 29 декабря 2011

Это сводится к простому вопросу о том, почему Console.WriteLine ("asdfasdf") не получает вывод в окно вывода в Visual Studio 2010 ??? поскольку мой не выводится там при выполнении тестов.

У меня есть файл конфигурации журнала, который, когда я запускаю мою программу в режиме отладки, записывает в файл И регистрирует оба окна вывода VS. Этот же файл, когда я использую его вместе с журналами MS Test, указывает на указанный мной файл, который заканчивается как TestResults / xxxx / example.log, НО не регистрируется в области вывода VS. Это почему? Это очень очень раздражает, так как мне нравится использовать вывод для прокрутки журналов.

Мой конфиг в log4net, который работает в одном, а не в другом

 <log4net>
    <!-- A1 is set to be a ConsoleAppender -->
    <appender name="Console" type="log4net.Appender.ConsoleAppender">

        <!-- A1 uses PatternLayout -->
        <layout type="log4net.Layout.PatternLayout">
            <conversionPattern value="%-4timestamp [%thread] %-5level %logger %ndc - %message%newline" />
        </layout>
    </appender>

  <appender name="RollingFile" type="log4net.Appender.RollingFileAppender">
    <file value="example.log" />
    <appendToFile value="true" />
    <maximumFileSize value="100KB" />
    <maxSizeRollBackups value="2" />

    <layout type="log4net.Layout.PatternLayout">
      <conversionPattern value="%level %thread %logger - %message%newline" />
    </layout>
  </appender>

  <root>
    <level value="DEBUG" />
    <appender-ref ref="Console" />
    <appender-ref ref="RollingFile" />
  </root>

</log4net>

Я называю это в моем тестовом примере

        // Set up a simple configuration that logs on the console.
        //BasicConfigurator.Configure();
        XmlConfigurator.ConfigureAndWatch(new System.IO.FileInfo("log4net.config"));
        Log.Info("testing");

Я вызываю это в моей программе, потому что она фактически перемещена в bin \ Debug \ conf dir ....

        XmlConfigurator.ConfigureAndWatch(new System.IO.FileInfo("conf/log4net.config"));

        log.Info("Starting the toolbar application");

Для меня абсолютно бессмысленно, почему это не сработает?
Спасибо, Декан

1 Ответ

2 голосов
/ 28 апреля 2012

Я не думаю, что панель вывода на самом деле отражает вывод консоли.Вместо этого на панели «Результаты теста» щелкните правой кнопкой мыши вопрос теста и выберите «Просмотреть подробности результатов теста» в контекстном меню.Детали результатов для каждого теста содержат вывод консоли для этого теста.

Кроме того, спасибо, у меня возникла противоположная проблема - я не смог найти файл, но я искал в bin / Debug!

...