下面我给你们介绍一下记日杂-log4net组件使用,当程序发布有服务器上,有时出现了错误, 都不知道出如今那,因此log4net组件很好解决这个问题。服务器
一、添加开发包,并对log4net.dll的引用mvc
二、在Web.Config (或App.Config)添加配置,app
<configSections><!--必定要在全部节点以前-->调试
<section name="log4net" type="log4net.Config.Log4NetConfigurationSectionHandler,log4net"/>日志
</configSections>orm
三、新增log4net 节点对象
<log4net>开发
<root>io
<!-- 日志级别 OFF(关闭),FATAL,ERROR,WARN,INFO,DEBUG,ALL(所有显示) -->配置
<level value="ALL" />
<appender-ref ref="RollingFileTracer" />
</root>
<!-- Print only messages of level DEBUG or above in the packages -->
<appender name="RollingFileTracer" type="log4net.Appender.RollingFileAppender,log4net"> <!--RollingFileAppender 表示滚动日志信息-->
<param name="File" value="App_Data/Log/" /> <!--日志信息保存的位置-->
<param name="AppendToFile" value="true" /> <!--是不是附加文件,true为在原来文件上追加内容-->
<param name="RollingStyle" value="Date" /> <!--文件根据什么来滚动储存, 这里是根据时间-->
<param name="MaxSizeRollBackups" value="10" /> <!--最多有多少个文件,当大于这个数, 就会把最早的文件删除-->
<param name="MaximumFileSize" value="1MB" /> <!--每一个文件最大大小-->
<param name="DatePattern" value=""Logs_"yyyyMMdd".txt"" /> <!--日志文件名格式-->
<param name="StaticLogFileName" value="false" />
<layout type="log4net.Layout.PatternLayout,log4net">
<param name="ConversionPattern" value="%d [%t] %-5p %c - %m%n" /> <!--输出格式-->
</layout>
</appender>
</log4net>
能够对访问级别进行控制, 调用时能够设为all 这样调试信息都会输出到日志文件中, 待程序稳定后,设为Warn 这样调试信息不会输出到日志文件中, 同时也不用修改代码
四、初始化:在Global的Application_Start中写(程序启动的时候读取配置)
log4net.Config.XmlConfigurator.Configure();
注意:必定要加入这个, 没有加虽然8不会报错可是不会任何效果
五、在Global的Application_Error记录未处理的异常信息
例:ILog ilog = LogManager.GetLogger(typeof(Global));
ilog.Error("系统发生未处理的异常信息",Context.Error);
在mvc里面能够手动添加这个方法
protected void Application_Error(object sender, EventArgs e)
{
//当系统中发生未处理的异常信息, 这个方法会被调用
ILog ilog = LogManager.GetLogger(typeof(MvcApplication));
ilog.Error("系统发生未处理的异常信息", Context.Error);
}
在要打印日志的地方LogManager.GetLogger(typeof(Program)).Debug("信息");
经过LogManager.GetLogger传递要记录的日志类类名得到这个类的ILog(这样在日志文件中就能看到这条日志是哪一个类输出的了),而后调用Debug方法输出消息。
由于一个类内部不止一个地方要打印日志,因此通常把ILog声明为一个static字段。
输出错误信息用ILog.Error方法,第二个参数能够传递Exception对象。log.Error("***错误"+ex),log.Error("***错误",ex)
例:
private static ILog ilog = LogManager.GetLogger(typeof(WebForm1));
protected void Page_Load(object sender, EventArgs e)
{
ilog.Debug("调试信息");
ilog.Info("信息");
ilog.Warn("警告信息");
ilog.Error("错误信息");
ilog.Fatal("严重信息");
}