这里简单介绍关于如何使用log4Net来开速配置日志记录
首先要引用log4net.dll,
然后配置,这里采用的是直接在Web.config文件中配置,configSections这个节点一定一定要放在configuration下面的第一个位置
<configSections> <section name="log4net" type="log4net.Config.Log4NetConfigurationSectionHandler,log4net"/> </configSections> <log4net> <logger name="log4NetTest"> <level value="INFO"/> <!--<appender-ref ref="AdoNetAppender_SqlServer"/>--> <!--<appender-ref ref="LogFileAppender"></appender-ref>--> <appender-ref ref="RollingLogFileAppender"></appender-ref> </logger> <appender name="LogFileAppender" type="log4net.Appender.FileAppender"> <param name="File" value="Application.log.txt"/> <param name="DatePattern" value="MM-dd HH:mm"/> <param name="AppendToFile" value="true"/> <layout type="log4net.Layout.PatternLayout"> <param name="ConversionPattern" value="%d [%t] %-5p %c [%x] - %m%n"/> </layout> </appender> <appender name="AdoNetAppender_SqlServer" type="log4net.Appender.AdoNetAppender"> <bufferSize value="1"/> <connectionType value="System.Data.SqlClient.SqlConnection, System.Data, Version=1.0.3300.0, Culture=neutral, PublicKeyToken=b77a5c561934e089"/> <connectionString value="data source=(local);initial catalog=pubs;integrated security=false;persist security info=True;User ID=sa;Password=sa"/> <commandText value="INSERT INTO [Log4Net]([Text]) Values( @Description)"/> <parameter> <parameterName value="@Description"/> <dbType value="String"/> <size value="1000"/> <layout type="log4net.Layout.PatternLayout"> <conversionPattern value="%X{description}"/> </layout> </parameter> </appender> <appender name="RollingLogFileAppender" type="log4net.Appender.RollingFileAppender"> <param name="File" value="bin/log/log4NetFile.txt"/> <param name="AppendToFile" value="true"/> <param name="MaxSizeRollBackups" value="10"/> <param name="MaximumFileSize" value="5MB"/> <param name="RollingStyle" value="Size"/> <param name="StaticLogFileName" value="true"/> <layout type="log4net.Layout.PatternLayout"> <param name="ConversionPattern" value="%d [%t] %-5p %c [%x] - Line:%L %m%n"/> </layout> </appender> </log4net>
关于ConversionPattern相关符号的配置
%m(message):输出的日志消息,如ILog.Debug(…)输出的一条消息 %n(new line):換行 %d(datetime):输出当前语句运行的时刻 %r(run time):输出程序从运行到执行到当前语句时消耗的毫秒数 %t(thread id):当前语句所在的线程ID %p(priority): 日志的当前优先级别,即DEBUG、INFO、WARN…等 %c(class):当前日志对象的名称 %L:输出语句所在的行号 %F:输出语句所在的文件名 %-数字:表示该项的最小长度,如果不够,则用空格填充
然后可以写一个简单的LogHelper日志帮助类
/// <summary> /// 日志帮助类 /// </summary> class LogHelper { /// <summary> /// lock对象 /// </summary> private static object lockLog = new object(); private static ILog _log; /// <summary> /// 记录Log信息 /// </summary> public static ILog ToLog { get { if (_log == null) { lock (lockLog) { log4net.Config.XmlConfigurator.Configure(); _log = log4net.LogManager.GetLogger("log4NetTest"); } } return _log; } } } /// <summary> /// Log对外执行文件 /// </summary> public class Log { /// <summary> /// 记录Error日志 /// </summary> /// <param name="msg"></param> public static void Error(string msg) { LogHelper.ToLog.Error(msg); } /// <summary> /// 记录Warn日志 /// </summary> /// <param name="msg"></param> public static void Warn(string msg) { LogHelper.ToLog.Warn(msg); } /// <summary> /// 记录Info日志 /// </summary> /// <param name="msg"></param> public static void Info(string msg) { LogHelper.ToLog.Info(msg); } /// <summary> /// 记录Debug日志 /// </summary> /// <param name="msg"></param> public static void Debug(string msg) { LogHelper.ToLog.Debug(msg); } }
最后就是在你需要的位置直接调用就行了
try { Log.Info("日志已经记录"); } catch (Exception ex) { Log.Error("日志错误已经记录:" + ex); }