zoukankan      html  css  js  c++  java
  • Log4net

    直接上代码

    1   nuget  下载 log4net。这个不多说了,大家都会

    2   web.config (下面是两套配置,我的项目webapi和mvc网站记录的文件夹不同)

    web和webapi一起写的:

      <log4net>  
        <root>  
          <appender-ref ref="WebLog" />  
        </root>  
        <appender name="WebLog" type="log4net.Appender.RollingFileAppender,log4net">  
          <file value="Log/" />  
          <appendToFile value="true" />  
          <rollingStyle value="Date" />  
          <datePattern value="yyyy-MM-dd_HH&quot;.txt&quot;" />  
          <maxSizeToRollBackups value="10" />  
          <maximumFileSize value="5MB" />  
          <staticLogFileName value="false" />  
          <layout type="log4net.Layout.PatternLayout,log4net">  
            <conversionPattern value="%d - %-5level - %c - %m%n" />  
          </layout>  
          <lockingModel type="log4net.Appender.FileAppender+MinimalLock" />  
        </appender>  
      </log4net> 

    web和webapi分开写的:

    <configuration>  
     <!-- 这句很重要 -->
    <section name="log4net" type="log4net.Config.Log4NetConfigurationSectionHandler,log4net" />
    
    <log4net>
        <root>
          <appender-ref ref="ApiLog" />
          <appender-ref ref="WebLog" />
        </root>
        <appender name="ApiLog" type="log4net.Appender.RollingFileAppender">
          <file value="LogApi" />
          <appendToFile value="true" />
          <rollingStyle value="Date" />
          <datePattern value="yyyy-MM-dd&quot;.log&quot;" />
          <maxSizeToRollBackups value="10" />
          <maximumFileSize value="5MB" />
          <staticLogFileName value="false" />
          <filter type="log4net.Filter.LoggerMatchFilter">
            <loggerToMatch value="ApiLog" />
          </filter>
          <filter type="log4net.Filter.DenyAllFilter" />
          <layout type="log4net.Layout.PatternLayout,log4net">
            <conversionPattern value="%d - %-5level - %c - %m%n" />
          </layout>
          <lockingModel type="log4net.Appender.FileAppender+MinimalLock" />
        </appender>
    
    
        <appender name="WebLog" type="log4net.Appender.RollingFileAppender">
          <file value="LogWeb" />
          <appendToFile value="true" />
          <rollingStyle value="Date" />
          <datePattern value="yyyy-MM-dd&quot;.log&quot;" />
          <maxSizeToRollBackups value="10" />
          <maximumFileSize value="5MB" />
          <staticLogFileName value="false" />
          <filter type="log4net.Filter.LoggerMatchFilter">
            <loggerToMatch value="WebLog" />
          </filter>
          <filter type="log4net.Filter.DenyAllFilter" />
          <layout type="log4net.Layout.PatternLayout,log4net">
            <conversionPattern value="%d - %-5level - %c - %m%n" />
          </layout>
          <lockingModel type="log4net.Appender.FileAppender+MinimalLock" />
        </appender>
      </log4net>
    
    </configuration>
    



    3   记录日志  在 Global.asax

    void Application_Start(object sender, EventArgs e)
            {
                log4net.Config.XmlConfigurator.Configure();
            //log4net.Config.XmlConfigurator.Configure(new FileInfo(Server.MapPath("~/Web.config")));
            }
    void Application_Error(object sender, EventArgs e)
            {
                Exception ex = Server.GetLastError().GetBaseException();
                string msg = "
    " + "StackTrace:
    " + ex.StackTrace 
                             + "
    
    " + "Message:
    " 
                             + ex.Message + "
    
    
    
    ";
    
                //根据不同的Log对象,执行记录
                //记录api的异常
                log4net.ILog log = log4net.LogManager.GetLogger("APILog");
                //记录web的异常
                log4net.ILog log = log4net.LogManager.GetLogger("WebLog"); 
    
                log4net.Config.XmlConfigurator.Configure(); 
                log.Info(msg); 
                Server.ClearError(); 
                Response.Redirect("~/ErrorManager/ErrorPage"); 
             }
    
    
    
    
    
    


    PS :发布的时候,一定要到 bin目录下 找到 log4net.xml这个文件一起拷贝到站点!

  • 相关阅读:
    时间复杂度与数据规模估计
    类型总结——数组前序和
    pat B1018——锤子剪刀布(数字替换字母思想)
    Linux下Tomcat(3):修改默认的8080端口号
    MySQL 重复数据的简单处理方式
    MySQL 排序
    MySQL DATE类型
    MySQL BETWEEN运算符介绍
    数据库简介
    在Linux下设置Kettle的定时任务
  • 原文地址:https://www.cnblogs.com/hanjun0612/p/9779897.html
Copyright © 2011-2022 走看看