zoukankan      html  css  js  c++  java
  • webform 使用log4net配置

    效果:

    web.config配置

    <configuration>
      <configSections>
        <!--log4net日志记录-->
        <section name="log4net" type="log4net.Config.Log4NetConfigurationSectionHandler,log4net"/>
      </configSections>
      <!--日志文件配置-->
      <log4net>
        <root>
          <!--只有在这个级别或之上的事件才会被记录-->
          <level value="ALL"/>
          <!--RollingFileAppender事件日志,每天一个日志-->
          <appender-ref ref="LogFileAppender_DateFormat"/>
        </root>
        <!--logger  name:必须的,logger的名称 additivity:可选,取值是true或false,默认值是true。设置为false时将阻止父logger中的appender-->
        <logger name="myLoggin">
          <!--只有在这个级别或之上的事件才会被记录-->
          <level value="DEBUG"/>
          <appender-ref ref="LogFileAppender_DateFormat"/>
        </logger>
        <!--定义日志的输出方式,只能作为 log4net 的子元素。name属性必须唯一,type属性必须指定。name:必须的,Appender对象的名称 type:必须的,Appender对象的输出类型-->
        <appender name="LogFileAppender_DateFormat" type="log4net.Appender.RollingFileAppender">
          <!--保存路径:下面路径项目启动的时候自动创建Log文件夹-->
          <file value="Log\"/>
          <appendToFile value="true"/>
          <!--按照何种方式产生多个日志文件(日期[Date],文件大小[Size],混合[Composite])-->
          <rollingStyle value="Date"/>
          <!--这是按日期产生文件夹-->
          <datePattern value="yyyyMM\yyyyMMdd'.txt'"/>
          <!--是否只写到一个文件中-->
          <staticLogFileName value="false"/>
          <param name="AppendToFile" value="true"/>
          <!--控制Appender的输出格式,也可以是xml  一个Appender只能是一个layout-->
          <layout type="log4net.Layout.PatternLayout">
            <!--每条日志末尾的文字说明-->
            <param name="Header" value="[Header]"/>
            <param name="Footer" value="[Footer]&#13;&#10;&#13;&#10;"/>
            <param name="ConversionPattern" value="
              %n    时间:%date 
              %n    线程ID:[%thread] 
              %n    日志级别:%-5level 
              %n    记录类:%logger 
              %n    消息:%message%n"/>
          </layout>
          <!--定义过滤器-->
          <filter type="log4net.Filter.LevelRangeFilter">
            <param name="LevelMin" value="DEBUG"/>
            <param name="LevelMax" value="WARN"/>
          </filter>
        </appender>
        <appender name="ConsoleAppender" type="log4net.Appender.ConsoleAppender">
          <layout type="log4net.Layout.PatternLayout">
            <param name="ConversionPattern" value="%d [%t] %-5p %c [%x] - %m%n"/>
          </layout>
        </appender>
      </log4net>
    </configuration>

     添加文件夹和类:

    Log.cs代码:

    [assembly: log4net.Config.XmlConfigurator(Watch = true)]
    namespace JRE.Member
    {
        public static class Log
        {
            public static log4net.ILog GetLogObject()
            {
                return log4net.LogManager.GetLogger("LogFileAppender_DateFormat");
            }
        }
    }

    调用日志:

    //每个方法调用花费时间
    Stopwatch wTime = new Stopwatch();
    wTime.Start();
    
    context.Response.ContentType = "text/plain";
    response = context.Response;
    request = context.Request;
    cont = context;
    context.Response.Buffer = true;
    context.Response.ExpiresAbsolute = DateTime.Now.AddDays(-1);
    context.Response.AddHeader("pragma", "no-cache");
    context.Response.AddHeader("cache-control", "");
    context.Response.CacheControl = "no-cache";
    context.Response.ContentType = "text/plain";
    System.Reflection.MethodInfo methodinfo = this.GetType().GetMethod(action);
    methodinfo.Invoke(this, null); 
    //当前所消耗时间
    wTime.Stop();
    Log.GetLogObject().DebugFormat("lan:{0}|Source:{1}|Reach_ID:{2}|ver:{3}|DeviceNumber:{4}|action:{5}|TOKEN:{6}|调用[{7}]方法花费的时间:{8}毫秒", lan, Source,Reach_ID,ver,DeviceNumber,action,TOKEN,action, wTime.Elapsed.TotalMilliseconds);
    HttpContext.Current.Response.End()
  • 相关阅读:
    P、NP及NPC问题
    latex test3
    latex test2
    test
    整体二分
    bzoj2819 nim (树上带修改查询路径异或和)
    kmp模板题
    KM的三种写法比较
    电视转播
    树状数组处理区间查询和区间修改的问题
  • 原文地址:https://www.cnblogs.com/zhyue93/p/log4net_2.html
Copyright © 2011-2022 走看看