log4net是一款非常实用的开源日志记录组建
使用简例如下:
1、从官网上下载log4net.dll
2、在项目中添加对dll的引用
3、添加配置文件,新建.config文件,文件内容如下
<?xml version="1.0" encoding="utf-8"?>
<configuration>
<configSections>
<section name="log4net" type="log4net.Config.Log4NetConfigurationSectionHandler, log4net" />
</configSections>
<log4net>
<root>
<level value="ALL" />
<appender-ref ref="LogFileAppender" />
<appender-ref ref="ConsoleAppender" />
</root>
<logger name="testApp.Logging">
<level value="DEBUG"/>
</logger>
<appender name="LogFileAppender" type="qutke_word.MyRollingFileAppender" >
<!--<param name="File" value="log-file.txt" />-->
<file value="log-file.txt" />
<param name="AppendToFile" value="true" />
<RollingStyle value="Size" />
<maximumFileSize value="10KB"/>
<param name="MaxSizeRollBackups" value="1" />
<layout type="log4net.Layout.PatternLayout">
<param name="Header" value="[Header] "/>
<param name="Footer" value="[Footer] "/>
<param name="ConversionPattern" value="%d [%t] %-5p %c [%x] - %m%n" />
</layout>
<filter type="log4net.Filter.LevelRangeFilter">
<param name="LevelMin" value="DEBUG" />
<param name="LevelMax" value="WARN" />
</filter>
</appender>
<appender name="ConsoleAppender" type="log4net.Appender.ConsoleAppender" >
<layout type="log4net.Layout.PatternLayout">
<param name="ConversionPattern" value="%d [%t] %-5p %c [%x] - %m%n" />
</layout>
</appender>
</log4net>
<connectionStrings/>
<system.diagnostics>
<sources>
<!-- 本节定义 My.Application.Log 的登录配置-->
<source name="DefaultSource" switchName="DefaultSwitch">
<listeners>
<add name="FileLog"/>
<!-- 取消注释以下一节可写入应用程序事件日志-->
<!--<add name="EventLog"/>-->
</listeners>
</source>
</sources>
<switches>
<add name="DefaultSwitch" value="Information"/>
</switches>
<sharedListeners>
<add name="FileLog" type="Microsoft.VisualBasic.Logging.FileLogTraceListener, Microsoft.VisualBasic, Version=8.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a, processorArchitecture=MSIL" initializeData="FileLogWriter"/>
<!-- 取消注释以下一节并用应用程序名替换 APPLICATION_NAME 可写入应用程序事件日志-->
<!--<add name="EventLog" type="System.Diagnostics.EventLogTraceListener" initializeData="APPLICATION_NAME"/> -->
</sharedListeners>
</system.diagnostics>
<startup><supportedRuntime version="v4.0" sku=".NETFramework,Version=v4.0"/></startup></configuration>
4、程序启动时读取配置文件,在thisaddin中添加<Assembly: log4net.Config.XmlConfigurator(Watch:=True)>
5、在程序中使用,先获取一个日志记录器 Public log As log4net.ILog = log4net.LogManager.GetLogger(System.Reflection.MethodBase.GetCurrentMethod().DeclaringType)
6、catch捕获异常时记录 log.Error(DateTime.Now.ToString() + ex.Message + ex.StackTrace + ": false")
注:stacktrace 可以得到错误代码的行号及详细信息,配置文件的详细解析可以参考http://www.cnblogs.com/jiajinyi/p/5884930.html
http://blog.csdn.net/tyouvivi/article/details/1653346网址
设定相对路径,可以重写File() 方法 配置文件的type改为重写的那个类名
Public Class MyRollingFileAppender
Inherits log4net.Appender.RollingFileAppender
Public Overrides Property File As String
Get
Return MyBase.File
End Get
Set(value As String)
MyBase.File = Path.Combine(setFilePath, value)
End Set
End Property
End Class
<appender name="LogFileAppender" type="qda_vba.MyRollingFileAppender" >
<!--<param name="File" value="log-file.txt" />-->
<file value="log-file.txt" />
//System.IO.Path.GetDirectoryName(System.Reflection.Assembly.GetExecutingAssembly().Location) (安装路径)