ここで与えられたlog4netのアドバイスに従いました。次に、Visual Studio 2010 で「F5」を押して、MsTest 単体テストを起動します。単体テストで次の 2 行が実行されると、次のようになります。
log.Warn("hello"); //this is a log4net logger.
System.Diagnostics.Debug.Write("there");
...Visual Studio の出力ウィンドウには、「そこに」という単語しか表示されません。「こんにちは」が出力されないのはなぜですか?
「ログ」変数の上にデバッグ ホバーすると、次のように表示されます。
IsDebugEnabled = false
IsErrorEnabled = true
IsFatalEnabled = true
IsInfoEnabled = false
IsWarnEnabled = true
このことから、構成ファイルが正しく読み取られていると結論付けます。私のlog4net構成は次のようになります。
<log4net>
<appender name="A1" type="log4net.Appender.OutputDebugStringAppender">
<!-- A1 uses PatternLayout -->
<layout type="log4net.Layout.PatternLayout">
<!--<conversionPattern value="%-4r [%t] %-5p %c %x - %m%n" />-->
<conversionPattern value="[MySite] %level %date{HH:mm:ss,fff} - %message%n" />
</layout>
</appender>
<root>
<level value="WARN" />
<appender-ref ref="A1" />
</root>
</log4net>
追加の FileAppender を追加すると、作成されるファイルには実際に「hello」メッセージが含まれます。VS デバッグ出力ウィンドウに「hello」が表示されない理由の手がかりはありますか?