Log4Net简单使用

一、 Log4net是什么、优点

用来记录程序日志,优点:1.提供应用程序运行时的精确环境,可供开发人员尽快找到应用程序中的Bug;2.日志信息可以输出到不同的地方(数据库,文件,邮箱等)。

二、 Log4net的结构

log4net 有四种主要的组件,分别是Logger(记录器), Repository(库), Appender(附着器)以及 Layout(布局).

二、 Log4net的结构

第一步:首先下载log4net.dll并在项目中引用log4net.dll文件。

第二步:在Web.config文件中进行添加configSections的节点

<configSections>

   

    <!--log4net配置-->

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

  </configSections>

第三步:添加log4net配置节点

Log4Net简单使用
 <!--log4net日志配置-->

  <log4net>

    

    <logger name="logerror">

      <level value="ERROR" />

      <appender-ref ref="ErrorAppender" />

    </logger>

    <logger name="loginfo">

      <level value="INFO" />

      <appender-ref ref="InfoAppender" />

    </logger>

    <!--<logger name="logdebug">

      <level value="DEBUG">

        <appender-ref ref="DebugAppender" />

      </level>

    </logger>-->

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

      <param name="File" value="C:\ErrorLog.txt" />

      <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:\InfoLog.txt" />

      <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="DebugAppender" type="log4net.Appender.RollingFileAppender">

      <param name="File" value="C:\DebugLog.txt" />

      <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>
webconfig Code

第四步:添加日记类logHelper

Log4Net简单使用
/// <summary>

    /// 使用LOG4NET记录日志的功能,在WEB.CONFIG里要配置相应的节点

    /// </summary>

    public class LogHelper

    {

        //log4net日志专用

        public static readonly log4net.ILog loginfo = log4net.LogManager.GetLogger("loginfo");

        public static readonly log4net.ILog logerror = log4net.LogManager.GetLogger("logerror");

          

        public static void SetConfig()

        {

            log4net.Config.XmlConfigurator.Configure();

        }



        public static void SetConfig(FileInfo configFile)

        {

            log4net.Config.XmlConfigurator.Configure(configFile);

        }

        /// <summary>

        /// 普通的文件记录日志

        /// </summary>

        /// <param name="info"></param>

        public static void WriteLog(string info)

        {

            if (loginfo.IsInfoEnabled)

            {

                loginfo.Info(info);

            }

        }

        /// <summary>

        /// 错误日志

        /// </summary>

        /// <param name="info"></param>

        /// <param name="se"></param>

        public static void WriteLog(string info, Exception se)

        {

            if (logerror.IsErrorEnabled)

            {

                logerror.Error(info, se);

            }

        }
LogHelper类 Code

第五步:添加Global.cs配置

Log4Net简单使用
void Application_Start(object sender, EventArgs e) 



    {

        //在应用程序启动时运行的代码        

        //初始日志的配置

        LogHelper.SetConfig();        

    }
Global Code
Log4Net简单使用
void Application_Error(object sender, EventArgs e)

        {

            // 在出现未处理的错误时运行的代码              

            Exception ex = HttpContext.Current.Server.GetLastError();  

            Base_Teacher teacher = Session[UCSKey.SESSION_LoginInfo] as Base_Teacher;



            if (teacher != null)

            {

                //记录错误日志

                // LogHelper.WriteErrorLog("\r\n用户ID:" + teacher.YHZH + "\r\n用户名:" + teacher.XM + "\r\n客户机IP:" + Request.UserHostAddress + "\r\n错误地址:" + Request.Url + "\r\n异常信息:" + Server.GetLastError().Message, ex);

                //记录普通日志

                 LogHelper.WriteInfoLog("\r\n用户ID:" + teacher.YHZH + "\r\n用户名:" + teacher.XM + "\r\n客户机IP:" + Request.UserHostAddress + "\r\n错误地址:" + Request.Url + "\r\n错误时间:" + DateTime.Now);

                //记录debug日志

               // LogHelper.WriteDebugLog("\r\n用户ID:" + teacher.YHZH + "\r\n用户名:" + teacher.XM + "\r\n客户机IP:" + Request.UserHostAddress + "\r\n错误地址:" + Request.Url + "\r\n异常信息:" + Server.GetLastError().Message, ex);

               

              

            }

        }
Global Code

第六步:页面中使用

在try catch的catch中调用 loghelper类即可。

 

总结:

1.webconfig配置要灵活

2.不断调试、多点耐心

 

 

tks:

代码参考:http://www.cnblogs.com/ringwang/archive/2012/07/06/2579775.html

保存邮箱是、数据库:http://www.poluoluo.com/jzxy/201311/249970.html

 

你可能感兴趣的:(log)