• 日志log4


    web.config配置如下: 
    <?xml version="1.0" encoding="utf-8" ?> 

    <configuration> 
    <configSections> 
      <section name="log4net" type="log4net.Config.Log4NetConfigurationSectionHandler,log4net" /> 
    </configSections> 
    <log4net> 
      <!--错误日志配置--> 
      <appender name="ErrorAppender" type="log4net.Appender.RollingFileAppender"> 
       <param name="File" value="Log\\LogError\\" />   
       <param name="AppendToFile" value="true" /> 
       <param name="MaxSizeRollBackups" value="100" /> 
       <param name="MaxFileSize" value="10240" /> 
       <param name="StaticLogFileName" value="false" /> 
       <param name="DatePattern" value="yyyyMMdd" /> 
       <param name="RollingStyle" value="Date" /> 
       <layout type="log4net.Layout.PatternLayout"> 
        <param name="ConversionPattern" value="%n异常时间:%d [%t] %n异常级别:%-5p %n异 常 类:%c [%x] %n%m %n " /> 
       </layout> 
      </appender>

      <!--信息日志配置--> 
      <appender name="InfoAppender" type="log4net.Appender.RollingFileAppender"> 
       <param name="File" value="Log\\LogInfo\\" /> 
       <param name="AppendToFile" value="true" /> 
       <param name="MaxFileSize" value="10240" /> 
       <param name="MaxSizeRollBackups" value="100" /> 
       <param name="StaticLogFileName" value="false" /> 
       <param name="DatePattern" value="yyyyMMdd" /> 
       <param name="RollingStyle" value="Date" /> 
       <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="logerror"> 
       <level value="ERROR" /> 
       <appender-ref ref="ErrorAppender" /> 
      </logger> 
      <logger name="loginfo"> 
       <level value="INFO" /> 
       <appender-ref ref="InfoAppender" /> 
      </logger>   
      <root> 
       <level value="INFO" /> 
       <appender-ref ref="InfoAppender" /> 
       <appender-ref ref="ConsoleAppender" /> 
      </root> 
    </log4net> 
    </configuration>

    LOG操作类 
    using System;   
    using System.IO;      

        /**//// <summary>   
        /// LogHelper的摘要说明。   
        /// </summary>   
        public class LogHelper   
        {   
            private SystemLog()   
            {   
            }   
      
            public static readonly log4net.ILog loginfo = log4net.LogManager.GetLogger("loginfo");   //选择<logger name="loginfo">的配置 
       
            public static readonly log4net.ILog logerror = log4net.LogManager.GetLogger("logerror");   //选择<logger name="logerror">的配置 
       
            public static void SetConfig()   
            {   
                log4net.Config.XmlConfigurator.Configure();   
            }   
      
            public static void SetConfig(FileInfo configFile)   
            {   
                log4net.Config.XmlConfigurator.Configure(configFile);    
            }   
      
            public static void WriteLog(string info)   
            {   
                if(loginfo.IsInfoEnabled)   
                {   
                    loginfo.Info(info);   
                }   
            }   
      
            public static void WriteLog(string info,Exception se)   
            {   
                if(logerror.IsErrorEnabled)   
                {   
                    logerror.Error(info,se);   
                }   
            }   
        } 

    Global.asax.cs文件配置如下:

    protected void Application_Start(Object sender, EventArgs e)   
      {   
                SystemLog.SetConfig();   
      }   
      protected void Application_Error(Object sender, EventArgs e)   
      {   
       Exception objExp = HttpContext.Current.Server.GetLastError();   
       LogHelper.WriteLog("\r\n客户机IP:"+ Request.UserHostAddress +"\r\n错误地址:"+ Request.Url +"\r\n异常信息:"+ Server.GetLastError().Message,objExp);   
      }  
    protected void Application_Start(Object sender, EventArgs e) 
      { 
                SystemLog.SetConfig(); 
      } 
      protected void Application_Error(Object sender, EventArgs e) 
      { 
       Exception objExp = HttpContext.Current.Server.GetLastError(); 
       LogHelper.WriteLog("\r\n客户机IP:"+ Request.UserHostAddress +"\r\n错误地址:"+ Request.Url +"\r\n异常信息:"+ Server.GetLastError().Message,objExp); 
      }

    eg: 
       try 
       {} 
       catch(Exception ex) 
       { 
           LogHelper.WriteLog("ErrorInfo"ex); 
       }

    以上本文来自CSDN博客,转载请标明出处:http://blog.csdn.net/javc/archive/2009/03/25/4022677.aspx

    1.调用步骤

    1.config配置

    2.初始化配置 log4net.Config.XmlConfigurator.Configure();  

    3.调用logger.Info("asdfasd"); 
     

    2.细节详解

    1.Log4net框架定义了一个叫做LogManager的类,用来管理所有的logger对象。它有一个GetLogger()静态方法,用我们提供的名字参数来检索已经存在的Logger对象。如果框架里不存在该Logger对象,它也会为我们创建一个Logger对象。代码如下所示:

    log4net.ILog log = log4net.LogManager.GetLogger("logger-name");

    通常来说,我们会以类(class)的类型(type)为参数来调用GetLogger(),以便跟踪我们正在进行日志记录的类。传递的类(class)的类型(type)可以用typeof(Classname)方法来获得,或者可以用如下的反射方法来获得: 
    log4net.ILog log = log4net.LogManager.GetLogger(System.Reflection.MethodBase.GetCurrentMethod().DeclaringType);

    尽管符号长了一些,但是后者可以用于一些场合,比如获取调用方法的类(class)的类型(type)。 
    例: private void button1_Click(object sender, EventArgs e) 
            {

                   logger.Info("sdfasd"); 
            }

    System.Reflection.MethodBase.GetCurrentMethod().DeclaringType 就为button1_Click这个方法所在的类的类型

    2.配置XmlConfigurator

    使用代码初始化配置。 
    log4net.Config.XmlConfigurator.Configure(new FileInfo("test.log4net")); 
    使用 XmlConfigurator.ConfigureAndWatch() 方法除了初始化配置外,还会监测配置文件的变化,一旦发生修改,将自动刷新配置。 
    我们还可以使用 XmlConfiguratorAttribute 代替 XmlConfigurator.Config()/ConfigureAndWatch(),ConfiguratorAttribute 用于定义与 Assembly 相关联的配置文件名。 
    方式1: 关联到 test.log4net,并监测变化。 
    [assembly: log4net.Config.XmlConfigurator(ConfigFile="test.log4net", Watch=true)] 
    方式2: 关联到 test.exe.log4net (或 test.dll.log4net,文件名前缀为当前程序集名称),并监测变化。 
    [assembly: log4net.Config.XmlConfigurator(ConfigFileExtension="log4net", Watch=true)]

  • 相关阅读:
    树莓派4B对接苹果Homebrigde
    分享一款好看的PyCharm风格(转)
    Centos7安装opencv-python缺少共享库(libSM.so.6, libXrender.so.1, libXext.so.6)的解决办法
    win10 python3.7安装 opencv 和 face_recognition
    Python出现Could not find a version that satisfies the requirement openpyxl (from versions: )
    从零开始开发标准的s57电子海图第十三篇 电子海图中特征记录各字段结构和内容(共一百篇)
    从零开始开发标准的s57电子海图第十二篇 编码原则与记录结构(共一百篇)
    从零开始开发标准的s57电子海图第十一篇--海图文件中的数据类型(共一百篇)
    从零开始开发标准的s57电子海图第十篇--海图文件示例(共一百篇)
    从零开始开发标准的s57电子海图第九篇--数据记录字段DR区的结构(共一百篇)
  • 原文地址:https://www.cnblogs.com/wcLT/p/2727372.html
Copyright © 2020-2023  润新知