log4net使用说明

来源:互联网 发布:破解软件盒子下载 编辑:程序博客网 时间:2024/05/20 19:33



先附上实现代码:http://download.csdn.net/detail/sinat_22013331/9570632



log4net的使用过程说明:

我理解的log4net的使用可以简单的概括为:引用dll文件 -- 配置log4net.config -- 加载配置文件 -- 定义LogHelper类 -- 使用LogHelper



step 1:对项目添加引用log4net.dll

下载一个log4net包,将log4net.dll文件拷贝到项目的根目录下,并在项目中添加该文件的引用



step 2:在项目config文件中添加配置信息

在项目的config配置文件中添加下面的配置信息,这个config文件可以是web.config,也可能是app.config,或者是其他类的项目的全局配置文件

<?xml version="1.0"?><configuration>    <configSections>    <section name="log4net" type="log4net.Config.Log4NetConfigurationSectionHandler, log4net"/>  </configSections>  </configuration>


step 3:定义log4net.config配置文件

在log4net配置文件中,定义输出格式和输出形式。比如下面的例子:

<?xml version="1.0"?><configuration>   <log4net>    <!--定义输出到文件中-->    <appender name="RollingLogFileAppender" type="log4net.Appender.RollingFileAppender">            <!--定义文件存放位置-->      <file value="log\\"/>      <appendToFile value="true"/>      <rollingStyle value="Date"/>      <datePattern value="yyyy-MM-dd'.txt'"/>      <staticLogFileName value="false"/>      <param name="MaxSizeRollBackups" value="100"/>      <layout type="log4net.Layout.PatternLayout">        <!--每条日志末尾的文字说明-->        <!--输出格式-->        <!--样例:2008-03-26 13:42:32,111 [10] INFO  Log4NetDemo.MainClass [(null)] - info-->        <conversionPattern value="%newline %n记录时间:%date %n线程ID:[%thread] %n日志级别:  %-5level %n出错类:%logger property: [%property{NDC}] - %n错误描述:%message%newline %n"/>      </layout>    </appender>    <root>      <level value="ERROR"/>      <!--文件形式记录日志-->      <appender-ref ref="RollingLogFileAppender"/>    </root>  </log4net>  </configuration>

这个例子中,只定义了一种输出形式,就是以文本文件的形式输出。还可以用其他形式输出,这就需要别的配置文件了。



step 4:在项目主入口配置log4net.config文件

这里的配置分为三步,首先是找到log4net的路径,其次是获取这个文件,第三步就是configurator加载配置信息

           // string filePath = Server.MapPath("~/log4net.config");            string filePath = "log4net.config";            FileInfo fileInfo = new FileInfo(filePath);            XmlConfigurator.ConfigureAndWatch(fileInfo);
在web项目中可以使用server.MapPath获取文件的虚拟路径。而我这里只是做一个测试,所以直接把log4net放在文件根目录的debug文件夹下,使之能够被找到。

然后用FileInfo获取文件信息,用XmlConfigurator来配置文件。



step 5:定义一个LogHelper类,封装需要做的操作

在这个类的前面,要加上读取配置信息的操作,[assembly: log4net.Config.XmlConfigurator(ConfigFile = "log4net.config", Watch = true)]

需要注意的是这条语句要放在命名空间前面。

[assembly: log4net.Config.XmlConfigurator(ConfigFile = "log4net.config", Watch = true)]namespace Log4netTest{    class LogHelper    {        #region 记录exception        public static void WriteLog(Type t, Exception e)        {            log4net.ILog log = log4net.LogManager.GetLogger(t);            log.Error("Error",e);        }        #endregion        #region 记录某条message        public static void WriteLog(Type t, string msg)        {            log4net.ILog log = log4net.LogManager.GetLogger(t);            log.Error(msg);        }        #endregion    }}


这样就完成了基本配置方案,最后只需要在程序中有需要的地方调用LogHelper即可


step 6:调用LogHelper,实现日志记录

            //记录某条string            LogHelper.WriteLog(typeof(Program), "测试是否实现了日志功能");            int[] a = new int[2];            try            {                for (int i = 0; i < 5; i++)                {                    a[i] = i;                }            }            catch (Exception e)            {                //记录某个exception                LogHelper.WriteLog(typeof(Program), e);            }


如下图,已经实现了错误日志记录的功能。具体的实现请下载实现代码来解读,链接在文首。




详细的错误信息如下:
















0 0