我正在使用NUnit來測試項目,我想配置我的測試以編程方式設置Common.Logging以使用Log4Net。以下是我已經試過:以編程方式配置Log4NetLoggerFactoryAdapter
NameValueCollection config = new NameValueCollection();
//config.Add("configType", "EXTERNAL");
var stream = Assembly.GetExecutingAssembly().GetManifestResourceStream("DevelopMENTALMadness.Data.Sql.Tests.loggerconfig.xml");
XmlConfigurator.Configure(stream);
LogManager.Adapter = new Log4NetLoggerFactoryAdapter(config);
具有下列文件:
<log4net>
<appender name="A1" type="log4net.Appender.ConsoleAppender">
<layout type="log4net.Layout.PatternLayout">
<conversionPattern value="[%thread] %-4timestamp %-5level %logger %ndc - %message%newline" />
</layout>
</appender>
<!-- Set root logger level to DEBUG and its only appender to A1 -->
<root>
<level value="DEBUG" />
<appender-ref ref="A1" />
</root>
而且
NameValueCollection config = new NameValueCollection();
//config.Add("configType", "EXTERNAL");
var x = new ConsoleAppender { Layout = new PatternLayout("[%thread] %-4timestamp %-5level %logger %ndc - %message%newline") };
BasicConfigurator.Configure(x);
LogManager.Adapter = new Log4NetLoggerFactoryAdapter(config);
但無論它不使用我指定的圖案或如果我取消註釋「configType」行,它根本不顯示任何內容。我只是試圖選擇我想要的佈局,所以當我調試我的測試時,我可以在NUnit runner(文本輸出)中看到日誌輸出。
所以在app.config坐在NUnit的班? – tofutim
不記得 - 可能在測試項目中 –