• 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>
        
        <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

    /// <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配置

    void Application_Start(object sender, EventArgs e) 
    
        {
            //在应用程序启动时运行的代码        
            //初始日志的配置
            LogHelper.SetConfig();        
        }
    Global Code
    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("
    用户ID:" + teacher.YHZH + "
    用户名:" + teacher.XM + "
    客户机IP:" + Request.UserHostAddress + "
    错误地址:" + Request.Url + "
    异常信息:" + Server.GetLastError().Message, ex);
                    //记录普通日志
                     LogHelper.WriteInfoLog("
    用户ID:" + teacher.YHZH + "
    用户名:" + teacher.XM + "
    客户机IP:" + Request.UserHostAddress + "
    错误地址:" + Request.Url + "
    错误时间:" + DateTime.Now);
                    //记录debug日志
                   // LogHelper.WriteDebugLog("
    用户ID:" + teacher.YHZH + "
    用户名:" + teacher.XM + "
    客户机IP:" + Request.UserHostAddress + "
    错误地址:" + Request.Url + "
    异常信息:" + 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

  • 相关阅读:
    用asp.net(C#)写的论坛
    javascript:window.history.go(1)什么意思啊?
    5个有趣的 JavaScript 代码片段
    marquee属性的使用说明
    flash网站欣赏
    获取验证码程序
    ACCESS中执行sql语句
    靠谱的工程师
    mysql变量(用户+系统)
    理解进程和线程
  • 原文地址:https://www.cnblogs.com/lei2007/p/3725078.html
Copyright © 2020-2023  润新知