Log4j配置

一. LOG功能设计说明

1.1 LOG功能设计介绍

现在系统需要有记录详细LOG的完整功能,其中包括SERVER端LOG,CILENT 端LOG,UNDO LOG,AP LOG,UI LOG等等,现在采用log4net机制对所有LOG接口进行统一规范的管理。

1.2 LOG接口调用实现方法

1.2.1 接口实现说明 Log4net 

Log4net是用于.NET开发环境的日志记录包,它可以提供应用程序运行时的精确环境,可供开发人员尽快找到应用程序中的Bug, 一旦在程序中加入了 Log 输出代码,程序运行过程中就 就会就能生成并输出日志信息而无需人工干预。

1.2.2 详细实现方法

1) 第一步:在项目中引用log4net.dll文件;

2) 第二步:在web.config中加入一句代码,代码如下:

<configuration>

  <configSections>     

    <section name="log4net"  type="log4net.Config.Log4NetConfigurationSectionHandler,log4net" />

  </configSections>

</configuration>

3) 第三步:建一个单独的配置文件Log4Net.config(这个配置文件会在App_Data目录下按日期每天产生一个日志文件,如:Logs_20120606.txt),并根据下列代码配置不同的日志,代码:   

<!--LOG 配置 start-->  

  <log4net>    

    <!--错误日志配置-->    

    <appender name="ErrorAppender" type="log4net.Appender.RollingFileAppender">      

      <!--log的文件的路径-->      

      <param name="File" value="Log\\ErrorLogger\\" />      

      <!--是否log文件结尾继续添加log-->      

      <param name="AppendToFile" value="true" />      

      <!--log文件数的的最大值-->      

      <param name="MaxSizeRollBackups" value="100" />      

      <!--单个log文件的最大值,log文件一旦超过该值将新建一个文件继续记录-->      

      <param name="MaxFileSize" value="10240" />      

      <!--log文件名是否是静态-->      

      <param name="StaticLogFileName" value="false" />      

      <!--log文件的滚动方式-->      

      <param name="RollingStyle" value="Date" />      

      <!--以下是log的重要配置参数,请不要改动-->      

      <layout type="log4net.Layout.PatternLayout">        

        <param name="ConversionPattern" value="%n异常时间:%d [%t] %n异常级别:%-5p %n异 常 类:%c [%x] %n%m %n " />      

      </layout>

    </appender>

    <!--控制台-->    

    <appender name="ConsoleAppender" type="log4net.Appender.ConsoleAppender">      

      <layout type="log4net.Layout.PatternLayout">        

        <conversionPattern value="%5level [%thread] (%file:%line) - %message%newline" />      

      </layout>

    </appender>

    <!--log4net.LogManager.GetLogger("logerror")用这个来选择这种类型-->    

    <logger name="ErrorLogger">      

      <level value="ERROR" />      

      <appender-ref ref="ErrorAppender" />

    </logger>

    <root>      

      <level value="ALL"/>

    </root>

  </log4net>  

<!--LOG 配置 end-->

4) 第四步:在文件AssemblyInfo.cs加入一句代码,AssemblyInfo.cs的路径在Properties下,加入的代码如下:     

  // 日志组件配置

  [assembly: log4net.Config.DOMConfigurator(ConfigFile = "log4net.config", Watch = true)]

5)第五步:建立LOG的接口文件Log4net.cs文件,通过以下代码得到配置文件中的日志配置对象,代码如下:      

先引入: Using log4net;

object o = ConfigurationSettings.GetConfig("log4net");

log4net.Config.DOMConfigurator.Configure(o as System.Xml.XmlElement);      

private static log4net.ILog fileLog = log4net.LogManager.GetLogger("ErrorLogger");

private static log4net.ILog infoLog = log4net.LogManager.GetLogger("InfoLogger");

logger.Debug("调试");

logger.Error("这是一个错误日志");

logger.Fatal("这是一个致命的错误日志");

logger.Warn("这是一条警告日志");

logger.Info("这是一条普通信息");

注:ErrorLoggerInfoLogger为config文件中标签logger中配置的名称,这样即可对应到该log4net对象是对应哪个日志配置对象。

6)通过在cs中编写接口方法,后面应用中只需调用该接口即可,代码如下:     

public static void LogErrorToFile(string msg, Exception e)   

{            

  if (fileLog.IsErrorEnabled)    

  {            

    lock (fileLog)                

    {                    

      msg = "--------------------"  +  Environment.NewLine + msg;                    

      fileLog.Error(msg, e);                

    }    

  }

}

7)应用中调用该接口,代码如下:     

 LogManager.logErrorToFile(Msg);   //Msg:即需要详细记录的log Message

 

1.2.3 提供日志查询界面

1)查询说明:系统 log 记录运行操作功能,在这里可以查看用户在后台的运行记录,比如来自哪个 IP 的管理者在哪一天的几点几分几秒访问了后台,进行过什么操作,此功能可以帮助维护人员更好的维护系统。

2)界面展示:

posted @ 2012-10-26 10:45  琴子  阅读(217)  评论(0编辑  收藏  举报