网上查了下log4net的使用,没有一个能直接拿来用的,不是描述不详细就是错误,经过自己摸索,终于实验成功,特把步骤记录如下:
1.去官方下载log4net组件(http://logging.apache.org/log4net/download.html)
2.把压缩包里的log4net.dll组件引用到你的项目中。
3.在项目文件夹/bin/Debug文件夹下新建配置文件Log4Net.config(文件名可以自己定,只要和后面关联配置文件的时候一致即可)
提供下我的配置文件:
<?xml version="1.0" encoding="utf-8" ?>
<configuration>
<!-- Register a section handler for the log4net section -->
<configSections>
<section name="log4net" type="System.Configuration.IgnoreSectionHandler" />
</configSections>
<log4net>
<root>
<level value="ALL" />
<appender-ref ref="rollingFile" />
</root>
<appender name="rollingFile" type="log4net.Appender.RollingFileAppender,log4net" >
<param name="File" value="log.txt" />
<param name="AppendToFile" value="True" />
<param name="RollingStyle" value="Date" />
<param name="DatePattern" value="yyyy.MM.dd" />
<param name="StaticLogFileName" value="true" />
<layout type="log4net.Layout.PatternLayout,log4net">
<param name="ConversionPattern" value="%d [%t] %-5p %c - %m%n" />
<param name="Header" value=" ----------------------header-------------------------- " />
<param name="Footer" value=" ----------------------footer-------------------------- " />
</layout>
</appender>
<appender name="consoleApp" type="log4net.Appender.ConsoleAppender,log4net">
<layout type="log4net.Layout.PatternLayout,log4net">
<param name="ConversionPattern" value="%d [%t] %-5p %c - %m%n" />
</layout>
</appender>
<logger name="Log4NetTest.LogTest">
<level value="DEBUG" />
<additivity value="false"/>
<appender-ref ref="rollingFile" />
</logger>
</log4net>
</configuration>
4.关联配置文件(让log4net找到配置文件)
在项目的AssemblyInfo.vb文件中添加如下内容:
<Assembly: log4net.Config.XmlConfiguratorAttribute(ConfigFile:="Log4Net", ConfigFileExtension:="config", Watch:=True)>
5.在程序中调用log,示例代码如下:
Private log As log4net.ILog = log4net.LogManager.GetLogger("Log4NetTest.LogTest")
log.Error("Message:" + ex.Message)
log.Error("StackTrace:" + ex.StackTrace)
按此5步操作,即可使用log4net了,日志文件在项目文件夹/bin/Debug/log.txt
还有一种不用独立配置文件方法
在项目的app.config文件中添加如下代码
<configSections>
<section name="log4net" type="System.Configuration.IgnoreSectionHandler" />
</configSections>
<log4net>
<root>
<level value="ALL" />
<appender-ref ref="rollingFile" />
</root>
<appender name="rollingFile" type="log4net.Appender.RollingFileAppender,log4net" >
<param name="File" value="log.txt" />
<param name="AppendToFile" value="True" />
<param name="RollingStyle" value="Date" />
<param name="DatePattern" value="yyyy.MM.dd" />
<param name="StaticLogFileName" value="true" />
<layout type="log4net.Layout.PatternLayout,log4net">
<param name="ConversionPattern" value="%d [%t] %-5p %c - %m%n" />
<param name="Header" value=" ----------------------header-------------------------- " />
<param name="Footer" value=" ----------------------footer-------------------------- " />
</layout>
</appender>
<appender name="consoleApp" type="log4net.Appender.ConsoleAppender,log4net">
<layout type="log4net.Layout.PatternLayout,log4net">
<param name="ConversionPattern" value="%d [%t] %-5p %c - %m%n" />
</layout>
</appender>
<logger name="Log4NetTest.LogTest">
<level value="DEBUG" />
<additivity value="false"/>
<appender-ref ref="rollingFile" />
</logger>
</log4net>
采用这个形式就不需要关联配置文件了。但没有第一种灵活。
这段文字只能让你把log4net用起来,里面的具体功能还是需要各位自己研究的,功能其实还是很多的,好用。