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()

 

posted @ 2017-09-18 17:07  zhyue93  阅读(507)  评论(0编辑  收藏  举报