zoukankan      html  css  js  c++  java
  • Web 应用配置Log4Net

    1.第一步:在web.config文件添加如下代码:

    [sourcecode language="csharp"]
    <configSections>
    <section name="log4net" type="log4net.Config.Log4NetConfigurationSectionHandler, log4net"/>
    </configSections>
    <log4net>
    <appender name="RollingLogFileAppender" type="log4net.Appender.RollingFileAppender">
    <file value="TestLog.txt"/>
    <appendToFile value="true"/>
    <rollingStyle value="Composite"/>
    <datePattern value="yyyyMMdd"/>
    <maxSizeRollBackups value="10"/>
    <maximumFileSize value="10MB"/>
    <layout type="log4net.Layout.PatternLayout">
    <conversionPattern value="[%d{yyyy-MM-dd HH:mm:ss}] [%p] [%c:%L] - %m%n"/>
    </layout>
    </appender>
    <root>
    <level value="DEBUG"/>
    <appender-ref ref="RollingLogFileAppender"/>
    </root>
    </log4net>
    [/sourcecode]

    第二步:添加Log4Net引用

    log4net.dll

    第三步:在global.asax 文件中添加命名空间

    [sourcecode language="csharp"]
    using log4net;
    using log4net.Config;
    using log4net.Repository;
    using log4net.Repository.Hierarchy;
    [/sourcecode]

    在 Application_Start 方法下添加

    [sourcecode language="csharp"]
    protected void Application_Start(object sender, EventArgs e)
    {
    XmlConfigurator.Configure();
    }
    [/sourcecode]

    第四步 :添加Logger 类

    using System;
    using System.Collections.Generic;
    using System.Linq;
    using System.Text;
    using System.Threading.Tasks;
    
    namespace Phone.BLL
    {
        public class LogHelper
        {
            public static readonly log4net.ILog loginfo = log4net.LogManager.GetLogger("loginfo");
            public static readonly log4net.ILog logerror = log4net.LogManager.GetLogger("logerror");
           
            public static void WriteLog(string info)
            {
                if(loginfo.IsInfoEnabled)
                {
                    loginfo.Info(info);
                }
            }
            public static void WriteLog(Exception se)
            {
                if(logerror.IsErrorEnabled)
                {
                    logerror.Error(se);
                }
            }
    
            public static void WriteLog(string info,Exception se)
            {
                if(logerror.IsErrorEnabled)
                {
                    logerror.Error(info, se);
                }
            }
        }
    }

    第五不: 捕获异常

            catch (Exception ex)
                {
                    LogHelper.WriteLog(ex);
                    return Ok(new WebResult(2));
                }

    log4net 常用参数:

    %m(message):输出的日志消息,如ILog.Debug(…)输出的一条消息
    %n(new line):换行
    %d(datetime):输出当前语句运行的时刻
    %r(run time):输出程序从运行到执行到当前语句时消耗的毫秒数
    %t(thread id):当前语句所在的线程ID
    %p(priority): 日志的当前优先级别,即DEBUG、INFO、WARN…等
    %c(class):当前日志对象的名称,例如:
    %f(file):输出语句所在的文件名。
    %l(line):输出语句所在的行号。
    %数字:表示该项的最小长度,如果不够,则用空格填充,如“%-5level”表示level的最小宽度是5个字符,如果实际长度不够5个字符则以空格填充。

    FAQ:

    1.控制日志文件大小的问题

    对于一个长时间使用并且有大量业务日志的系统来说,如果使用FileAppender将日志一直记录到一个文件中会引起性能低下的问题,我曾见过有个系统的日志文件达到了800多M,最后系统无法及时响应了,在这种情况下可考虑使用RollingFileAppender循环记录日志,一种是指定文件的最大长度,如果超过了就重新生成一个文件,如下面的配置:

    <appender name="RollingFileAppender" type="log4net.Appender.RollingFileAppender"> 
      <file value="RollingFileAppender_log.txt" /> 
      <appendToFile value="true" /> 
      <rollingStyle value="Size" /> 
      <maxSizeRollBackups value="10" /> 
      <maximumFileSize value="100KB" /> 
      <staticLogFileName value="true" /> 
      <layout type="log4net.Layout.PatternLayout"> 
        <conversionPattern value="%date [%thread] (%file:%line) %-5level %logger [%property{NDC}] - %message%newline" /> 
      </layout> 
    </appender> 
    在上面的配置中,每个日志文件最大100KB,最大日志文件个数是10生成的日志文件名会是RollingFileAppender_log.txt.1, RollingFileAppender_log.txt.2 ... RollingFileAppender_log.txt.10,如果记录的日志超过10个,会从RollingFileAppender_log.txt.1开始覆盖。
    还有一种方式就是按照日期记录日志,它的配置如下:
    <appender name="RollingLogFileAppender_DateFormat" type="log4net.Appender.RollingFileAppender"> 
      <file value="RollingLogFileAppender_DateFormat_log.txt" /> 
      <appendToFile value="true" /> 
      <rollingStyle value="Date" /> 
      <!--<datePattern value="yyyyMMdd-HHmm" />--> 
      <datePattern value="yyyyMMdd" /> 
      <layout type="log4net.Layout.PatternLayout"> 
        <conversionPattern value="%date [%thread](%file:%line) %-5level %logger [%property{NDC}] - %message%newline" /> 
      </layout> 
    </appender> 

    后记:

    如果想暂停Log4Net日志功能,在webconfig添加如下代码即可

    [sourcecode language="csharp"]
    <log4net></pre>
    <log4net threshold="OFF" />
    <appender>.....
    [/sourcecode]
    [/sourcecode]Let me know if you face any further issue on this.

     Log4Net  SDK

  • 相关阅读:
    UVA 10600 ACM Contest and Blackout(次小生成树)
    UVA 10369
    UVA Live 6437 Power Plant 最小生成树
    UVA 1151 Buy or Build MST(最小生成树)
    UVA 1395 Slim Span 最小生成树
    POJ 1679 The Unique MST 次小生成树
    POJ 1789 Truck History 最小生成树
    POJ 1258 Agri-Net 最小生成树
    ubuntu 用法
    ubuntu 搭建ftp服务器,可以通过浏览器访问,filezilla上传文件等功能
  • 原文地址:https://www.cnblogs.com/code-charmer/p/4630625.html
Copyright © 2011-2022 走看看