有人问了这个问题
here
然而,该解决方案不是编程配置。在本例中,库
Wrapper.dll
正确配置了
Common.Logging
.控制台应用程序
ConsoleApplication1.exe
尝试实现
Log4NetLoggerFactoryAdapter
.
这
工作正常
,从发送日志条目
包装.dll
到控制台。
这个
app.config
:
<configSections>
<sectionGroup name="common">
<section name="logging" type="Common.Logging.ConfigurationSectionHandler, Common.Logging" />
</sectionGroup>
<section name="log4net" type="log4net.Config.Log4NetConfigurationSectionHandler, log4net" />
</configSections>
<common>
<logging>
<factoryAdapter type="Common.Logging.Log4Net.Log4NetLoggerFactoryAdapter, Common.Logging.Log4Net1211">
<arg key="configType" value="INLINE" />
</factoryAdapter>
</logging>
</common>
<log4net>... a valid ConsoleAppender ..</log4net>
内的代码
ConsoleApplication1
:
//var properties = new Common.Logging.Configuration.NameValueCollection();
//properties.Add("configType", "INLINE");
//var adapter = new Common.Logging.Log4Net.Log4NetLoggerFactoryAdapter(properties);
var c1 = new Wrapper();
这
不起作用
。它不会从发送日志条目
包装.dll
到控制台。
这个
应用程序配置文件
:
<configSections>
<!-- <sectionGroup name="common">
<section name="logging" type="Common.Logging.ConfigurationSectionHandler, Common.Logging" />
</sectionGroup> -->
<section name="log4net" type="log4net.Config.Log4NetConfigurationSectionHandler, log4net" />
</configSections>
<!-- <common>
<logging>
<factoryAdapter type="Common.Logging.Log4Net.Log4NetLoggerFactoryAdapter, Common.Logging.Log4Net1211">
<arg key="configType" value="INLINE" />
</factoryAdapter>
</logging>
</common> -->
<log4net>... a valid ConsoleAppender ..</log4net>
内的代码
控制台应用程序1
:
var properties = new Common.Logging.Configuration.NameValueCollection();
properties.Add("configType", "INLINE");
var adapter = new Common.Logging.Log4Net.Log4NetLoggerFactoryAdapter(properties);
var c1 = new Wrapper();
通过编程解决方案,我可以成功使用
GetLogger
在内部
控制台应用程序1
从适配器或
log4net
,但我无法从“Wrapper”库中使用的记录器获取要传播的日志事件。
注意,在
工作正常
我已经允许xml并对编程调用进行了注释。在里面
不起作用
我已经对相关的xml进行了注释,并实现了编程代码。还要注意,这是一个微不足道的例子。真正的应用程序正在尝试使用一个.NET库,该库实现
通用.日志记录
来自Matlab。