1.提前使用NuGet程序包导入Log4Net.dll
2.在AssemblyInfo.vb文件中,写入如下配置(注意如果是放到文件夹内,需要加入文件路径地址)。
如果无法打印信息,看log4net.config文件是否在Debug文件夹内
<Assembly: log4net.Config.XmlConfiguratorAttribute(ConfigFile:="log4net.config", Watch:=True)>
3.配置log4net.config文件
1 <?xml version="1.0" encoding="utf-8" ?> 2 <configuration> 3 <configSections> 4 <section name="log4net" type="System.Configuration.IgnoreSectionHandler" /> 5 </configSections> 6 <!--log4net配置文件--> 7 <log4net> 8 <root> 9 <level value="ALL"/> 10 <appender-ref ref="InfoAppender"/> 11 <appender-ref ref="ErrorAppender"/> 12 <!--<appender-ref ref="ConsoleAppender"/>--> 13 </root> 14 <!--运行状态信息--> 15 <appender name="InfoAppender" type="log4net.Appender.RollingFileAppender"> 16 <!--日志路径--> 17 <File value="log/log_info.txt"/> 18 <!--是否是向文件中追加日志--> 19 <AppendToFile value="true"/> 20 <!--创建新文件的方式--> 21 <RollingStyle value="Size"/> 22 <!--log文件大小--> 23 <MaximumFileSize value="5M"/> 24 <!--备份日志数目--> 25 <MaxSizeRollBackups value="30"/> 26 <!--日志文件名是否是固定不变的--> 27 <StaticLogFileName value="true"/> 28 <lockingModel type="log4net.Appender.RollingFileAppender+MinimalLock" /> 29 <!--输出格式--> 30 <layout type="log4net.Layout.PatternLayout"> 31 <!--日期 [级别]--> 32 <conversionPattern value="%d [%-5p] [%t%] -%m%n"/> 33 </layout> 34 <!--控制器,只记录级别在INFO-INFO之间的信息--> 35 <filter type="log4net.Filter.LevelRangeFilter"> 36 <levelMin value="INFO" /> 37 <levelMax value="INFO" /> 38 </filter> 39 </appender> 40 <!--运行错误信息--> 41 <appender name="ErrorAppender" type="log4net.Appender.RollingFileAppender"> 42 <!--日志路径--> 43 <File value="log/log_error.txt"/> 44 <!--是否是向文件中追加日志--> 45 <AppendToFile value="true"/> 46 <!--创建新文件的方式--> 47 <RollingStyle value="Size"/> 48 <!--log文件大小--> 49 <MaximumFileSize value="5M"/> 50 <!--备份日志数目--> 51 <MaxSizeRollBackups value="30"/> 52 <!--日志文件名是否是固定不变的--> 53 <StaticLogFileName value="true"/> 54 <lockingModel type="log4net.Appender.RollingFileAppender+MinimalLock" /> 55 <!--输出格式--> 56 <layout type="log4net.Layout.PatternLayout"> 57 <!--输出格式--> 58 <conversionPattern value="%d [%-5p] [%t%] -%m%n"/> 59 </layout> 60 <!--控制器,只记录级别在WARN-FATAL之间的信息--> 61 <filter type="log4net.Filter.LevelRangeFilter"> 62 <levelMin value="WARN" /> 63 <levelMax value="FATAL" /> 64 </filter> 65 </appender> 66 </log4net> 67 </configuration>
3.配置LogHelper.vb
1 Public Class LogHelper 2 3 Shared log As log4net.ILog = log4net.LogManager.GetLogger(System.Reflection.MethodBase.GetCurrentMethod().DeclaringType) 4 5 ''' <summary> 6 ''' 程序运行的过程中的,一般信息可以调用此方法记录日记 7 ''' </summary> 8 ''' <param name="info"></param> 9 Public Shared Sub Info(info As String) 10 If log.IsInfoEnabled = True Then 11 log.Info(info) 12 End If 13 End Sub 14 ''' <summary> 15 ''' 程序出现错误的时候调用此方法记录日记(一般用在出现了异常以后) 16 ''' </summary> 17 ''' <param name="info"></param> 18 Public Shared Sub Errors(info As String) 19 If log.IsErrorEnabled = True Then 20 log.Info(info) 21 End If 22 End Sub 23 ''' <summary> 24 ''' 程序出现错误的时候调用此方法记录日记(一般用在出现了异常以后) 25 ''' </summary> 26 ''' <param name="info"></param> 27 ''' <param name="ex"></param> 28 Public Shared Sub Errors(info As String, ex As Exception) 29 If log.IsErrorEnabled = True Then 30 log.Info(info, ex) 31 End If 32 End Sub 33 ''' <summary> 34 ''' 程序出现错误的时候调用此方法记录日记(一般用在出现了异常以后) 35 ''' </summary> 36 ''' <param name="ex"></param> 37 Public Shared Sub Errors(ex As Exception) 38 If log.IsErrorEnabled = True Then 39 log.Info(ex) 40 End If 41 End Sub 42 End Class
4.调用方法:
LogHelper.Errors("异常",ex)