log4net是.Net下一个非常优秀的开源日志记录组件。log4net记录日志的功能非常强大。它可以将日志分不同的等级,以不同的格式,输出到不同的媒介。
日志分类:
1,Info
2,Debug
3,Warn
4,Error
5,Fatal
存储类型:
ADONetAppender 数据库方式
SmtpAppender 发邮件
LogFileAppender 服务器端日志文件
ColoredConsoleAppender 还没用过
EventLogAppender windows日志
NetSendAppender
RollingFile 还没用过
先看效果:
文件存储
数据库存储
邮件存储
本文主要是简单的介绍怎么使用:
第一步:添加引用
第二步:添加配置 ,在Web.config 文件中进行添加configSections的节点 如下图所示,
第三步:添加日志配置类型及存储类型,如果是数据库存储需要提前建好数据表,配置好数据库连接字符串,文件存储需要指定日志文件路径和文件名,邮件发送需要配置邮件协议,具体会在代码中有,
<log4net debug="true"> <!--<logger name="logerror"> <level value="ERROR" /> <appender-ref ref="ADONetAppender" /> </logger> <logger name="loginfo"> <level value="INFO" /> <appender-ref ref="InfoAppender" /> </logger>--> <logger name="Loggering"> <level value="Warn"/> <appender-ref ref="ADONetAppender"/> </logger> <root> <level value="info" /> <!--<appender-ref ref="ADONetAppender" />--> <appender-ref ref="ADONetAppender"/> <!--<appender-ref ref="LogFileAppender"/> <appender-ref ref="ColoredConsoleAppender"/> <appender-ref ref="EventLogAppender"/> <append-ref ref="NetSendAppender"/> <appender-ref ref="RollingFile"/>--> </root> <appender name="ErrorAppender" type="log4net.Appender.RollingFileAppender"> <param name="File" value="C:App_LogErrorLog.log" /> <param name="AppendToFile" value="true" /> <param name="MaxSizeRollBackups" value="100" /> <param name="MaximumFileSize" value="1MB" /> <param name="RollingStyle" value="Size" /> <param name="StaticLogFileName" value="true" /> <layout type="log4net.Layout.PatternLayout"> <param name="ConversionPattern" value="%-5p %d [%c] %m%n" /> </layout> </appender> <appender name="InfoAppender" type="log4net.Appender.RollingFileAppender"> <param name="File" value="C:App_LogInfoLog.log" /> <param name="AppendToFile" value="true" /> <param name="MaxSizeRollBackups" value="100" /> <param name="MaximumFileSize" value="1MB" /> <param name="RollingStyle" value="Size" /> <param name="StaticLogFileName" value="true" /> <layout type="log4net.Layout.PatternLayout"> <param name="ConversionPattern" value="%-5p %d [%c] %m%n" /> </layout> </appender> </log4net>
文件路径配置:
文件路径配置
邮件配置
数据库配置
create table _log ( id int identity(1,1) primary key not null, date datetime null, thread int null, level varchar(10) null, logger varchar(20) null, Message varchar(100) null, Exception varchar(100) null )
数据库日志表脚本
第四步:写日志
gloab.asax.cs文件 中Application_Start()方法里第一行加:
log4net.Config.XmlConfigurator.Configure();
再在要记录的日志文件里加日志记录,如下所示
private static readonly log4net.ILog log = log4net.LogManager.GetLogger("Loggering"); string message = string.Format("错误消息:{0},方法名:{1},参数:{2}", ex.Message, "JsonResult Login", Request.Params.ToString()); log.Debug(message); log.Error(message); log.Fatal(message); log.Warn(message); log.Info(message);