在做winform程序的时候,用到了log4net,编译的时候总报没有添加引用的错误,而事实上已经添加了。后来经过多次调试,终于找到了问题,现标记一下,以供后来者翻阅!
开发环境:vs2010 winform程序(web程序不存在上面提到的问题)
先简单标记下log4net的使用,以供自己翻阅!
1、添加引用log4net.dll
2、在AssemblyInfo.cs文件尾部加上[assembly: log4net.Config.XmlConfigurator()]
3、app.config里添加节点:
<!--log4net-->
<configSections>
<section name="log4net" type="log4net.Config.Log4NetConfigurationSectionHandler, log4net-net-2.10"/>
</configSections>
上面的这个配置节点要放在app.config根节点 configuration 下,必须是第一个节点;
<log4net>
<root>
<level value="ALL"/>
<appender-ref ref="RollingLogFileAppender"/>
</root>
<appender name="RollingLogFileAppender" type="log4net.Appender.RollingFileAppender">
<param name="File" value="D:\Test\"/>
<param name="AppendToFile" value="true"/>
<param name="MaximumFileSize" value="2048KB"/>
<param name="MaxSizeRollBackups" value="10"/>
<param name="StaticLogFileName" value="false"/>
<param name="DatePattern" value="yyyyMMdd".log""/>
<param name="RollingStyle" value="Composite"/>
<layout type="log4net.Layout.PatternLayout">
<param name="ConversionPattern" value="[%d] %t [%-5p] %c [%F - %L] : %n%m%n"/>
</layout>
<filter type="log4net.Filter.LevelRangeFilter">
<param name="LevelMin" value="DEBUG"/>
<param name="LevelMax" value="WARN"/>
</filter>
</appender>
</log4net>
这个配置写的是文本日志,有大小限制,按日期命名。关于log4net的其它配置,可参考:http://hi.baidu.com/haicheng00/blog/item/20abeef399dbb2d20a46e0b5.html!
4、在应用的类中加: ILog log = log4net.LogManager.GetLogger(System.Reflection.MethodBase.GetCurrentMethod().DeclaringType);
写日志: if(log.IsInfoEnabled)log.Info("this is a test");
这个配置在VS2010 winform项目中编译会报上面提到的错误,解决方法:
在项目上右键=》属性=》目标框架 选择.net framework 2.0 ,然后再编译,2.0下编译也可能报错,但不用管它,再切回4.0编译就通过了!
没深入研究,不知道为什么~~~
第一次使用log4net,很浅显,标记供以后查阅!希望有经验的同胞多多分享!