zoukankan      html  css  js  c++  java
  • [问题记录]——log4net记录多个级别文件

    前言

    不知不觉可都快又一年了,最近这段时间一直在忙着图形方面的东西(确实快给我搞死了),虽说时间还是相对有的,但是精力耗费的十有十一,把问题记录单开一栏,是为了后续记录使用中遇到的问题及相应的解决方法。

    Log4net

    关于这个日志记录类库,我也不需要多说,具体配置可见:net core Webapi基础工程搭建(四)——日志功能log4net

    今天刚好一个网友问我,说业务上需要不同级别存储到不同文件,确实在日志记录上,常规不会把所有级别的日志文件放到同一个,这样会把自己眼给看坏的,因为之前做过这块儿的操作,所以这里也就不多说,直接看代码吧。

    首先,我们需要在log4net.config中加上一个新的填充日志的方法,这里说下filter,很明显,这是个过滤器,作用呢就是可以指定记录日志的级别,所以,也就不用多说了,一看便知。

    <?xml version="1.0" encoding="utf-8" ?>
    <configuration>
      <!-- This section contains the log4net configuration settings -->
      <log4net debug="false">
    
        <appender name="RollingLogFileAppender" type="log4net.Appender.RollingFileAppender">
          <lockingModel type="log4net.Appender.FileAppender+MinimalLock" />
          <!--很关键的一句,让日志文件不被占用-->
          <file value="logs/" />
          <appendToFile value="true" />
          <rollingStyle value="Composite" />
          <staticLogFileName value="false" />
          <datePattern value="yyyyMMdd'.log'" />
          <maxSizeRollBackups value="10" />
          <maximumFileSize value="10MB" />
          <layout type="log4net.Layout.PatternLayout">
            <conversionPattern value="%date [%thread] %-5level %logger - %message%newline" />
          </layout>
        </appender>
    
    	<!--这里就是只记录对应级别的配置-->
        <appender name="RollingErrorLogAppender" type="log4net.Appender.RollingFileAppender">
          <lockingModel type="log4net.Appender.FileAppender+MinimalLock" />
          <!--很关键的一句,让日志文件不被占用-->
          <file value="logs/error/" />
          <appendToFile value="true" />
          <rollingStyle value="Composite" />
          <staticLogFileName value="false" />
          <datePattern value="yyyyMMdd'.log'" />
          <maxSizeRollBackups value="10" />
          <maximumFileSize value="10MB" />
          <layout type="log4net.Layout.PatternLayout">
            <conversionPattern value="%date [%thread] %-5level %logger - %message%newline" />
          </layout>
          <filter type="log4net.Filter.LevelRangeFilter">
            <levelMin value="ERROR" />
            <levelMax value="FATAL" />
          </filter>
        </appender>
    
        <!-- Setup the root category, add the appenders and set the default level -->
        <root>
          <level value="ALL" />
          <appender-ref ref="RollingLogFileAppender" />
          <!--这里是新增一个配置-->
          <appender-ref ref="RollingErrorLogAppender" />
        </root>
    
      </log4net>
    </configuration>
    

    然后我们来做个测试吧,问题记录以后尽量精简不废话。

    测试

    ValuesController的测试接口更改日志测试为以下代码。

                #region ========日志测试========
                //日志测试
                LogUtil.Info("测试");
                LogUtil.Error("错误测试");
                #endregion
    

    运行程序。

    测试

    我们来看下效果,首先默认的日志文件还是记录了多个级别的日志。
    测试

    再来看下error下面的日志文件。
    测试

    小结

    ok,基本上到这里就结束了,其实这篇东西不多,只是想借此也开一个问题记录栏,毕竟示例是一回事,实际业务使用又是一回事(当然,说起来这个WebApi工程好久没动过了,唉,搞毛啊),后续还是会继续鼓捣东西,一点点儿的通过这个示例工程来展示效果。

  • 相关阅读:
    将RIP协议配置成单播
    powershell的超级破烂的设置问题。
    netsh trace抓包结合microsoft network monitor 进行分析
    Managing Windows Programs from the Command Line: Tasklist
    windows 7 的个超级工具
    Metasploit开源安全漏洞检测工具
    Assigned Internet Protocol Numbers
    4B/5B编码原理
    PHP在IIS下。
    网络层的一些附属协议
  • 原文地址:https://www.cnblogs.com/AprilBlank/p/12047757.html
Copyright © 2011-2022 走看看