繁体   English   中英

每个Appender参考的Log4Net类记录器级别

[英]Log4Net Class Logger level per Appender-ref

我正在尝试使用Log4Net将性能记录器分离为单独的日志...

我设置了新的Appender

<appender name="RollingFile" type="log4net.Appender.RollingFileAppender">
    <file value="C:\Logs\ServiceLayer.log" />
    <appendToFile value="true" />
    <rollingStyle value="Composite" />
    <datePattern value="_yyyy.MM.dd.lo\g" />
    <maximumFileSize value="5MB" />
    <maxSizeRollBackups value="10" />
    <PreserveLogFileNameExtension value="true" />
    <layout type="log4net.Layout.PatternLayout">
        <!-- <conversionPattern value="%level %thread %logger - %message%newline" /> -->
        <conversionPattern value="%d{yyyy-MM-dd HH:mm:ss.fff} %5level [%thread][%property{bms.log.username}::%property{bms.log.businessRequest}(%property{bms.log.activityLogID})]  - %message%newline" />
    </layout>
    <lockingModel type="log4net.Appender.FileAppender+MinimalLock" />
</appender>
<appender name="PerfFile" type="log4net.Appender.RollingFileAppender">
    <file value="C:\Logs\Perf.log" />
    <appendToFile value="true" />
    <rollingStyle value="Composite" />
    <datePattern value="_yyyy.MM.dd-HH-mm.lo\g" />
    <maximumFileSize value="5MB" />
    <maxSizeRollBackups value="24" />
    <PreserveLogFileNameExtension value="false" />
    <layout type="log4net.Layout.PatternLayout">
        <!-- <conversionPattern value="%level %thread %logger - %message%newline" /> -->
        <conversionPattern value="%d{yyyy-MM-dd HH:mm:ss.fff} %5level [%thread][%property{bms.log.username}::%property{bms.log.businessRequest}(%property{bms.log.activityLogID})]  - %message%newline" />
    </layout>
    <lockingModel type="log4net.Appender.FileAppender+MinimalLock" />
</appender>

性能附加器是我添加的新附加器...

我还设置了一个BufferForwardingAppender

<appender name="BMSDefaultAppender" type="log4net.Appender.BufferingForwardingAppender">
<bufferSize value="128" />
<lossy value="false" />
<evaluator type="log4net.Core.LevelEvaluator">
    <threshold value="WARN" />
</evaluator>
<appender-ref ref="RollingFile" />

从那里我设置了根

<root>
  <level value="ERROR" />
  <appender-ref ref="BMSDefaultAppender" />
</root>

进行此设置后,我将错误记录到滚动日志文件中,但是我想将一些信息级别的数据捕获到我的perf文件中...

<logger name="BMS.LTD.Activity.Workflow" additivity="false">
    <level value="INFO" />
    <appender-ref ref="PerfFile" />
</logger>
<logger name="BMS.LTD.Activity.Workflow.Rules" additivity="false">
    <level value="WARN" />
    <appender-ref ref="PerfFile" />
</logger>
<logger name="BMS.LTD.Persistence.DataSourceDataProviders" additivity="false">
    <level value="INFO" />
    <appender-ref ref="PerfFile" />
</logger>
<logger name="BMS.LTD.Persistence.DataSourceDataProviders.DataSourceDataCache" additivity="false">
    <level value="WARN" />
    <appender-ref ref="PerfFile" />
</logger>

现在,我在Perf日志中得到了“信息并警告”,但同时我也出现了错误,是否有可能在我的主日志中得到我的错误而在Perf日志中得到我的信息级别?

要控制哪些日志事件进入每个文件,请将LevelRangeFilters添加到附加程序:

<!-- log error and above - add to the RollingFile appender config -->
<filter type="log4net.Filter.LevelRangeFilter">
  <levelMin value="ERROR"/>
  <levelMax value="FATAL"/>
</filter>

<!-- log INFO and below - add to the PerfFile appender config -->
<filter type="log4net.Filter.LevelRangeFilter">
  <levelMin value="DEBUG"/>
  <levelMax value="INFO"/>
</filter>

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM