Siv*_*iva 118 c# log4net log4net-configuration
这个网站说
可以为记录器分配级别.级别是log4net.Core.Level类的实例.以优先级递增的顺序定义以下级别:
- 所有
- DEBUG
- 信息
- 警告
- 错误
- 致命
- 关闭
DEBUG似乎具有最低优先级,ERROR更高.
题
<filter type="log4net.Filter.LevelRangeFilter">
<param name="LevelMin" value="ERROR"/>
<param name="LevelMax" value="ERROR"/>
</filter>
Run Code Online (Sandbox Code Playgroud)
而不是最小和最大过滤器.是否可以配置级别并包括其下的所有其他级别以进行日志记录.
示例 - 将级别设置为错误,它将包括DEBUG,INFO,WARN和ERROR.这可能与log4net一起使用吗?
根据其中一条评论发布log4net配置:
<?xml version="1.0" encoding="utf-8" ?>
<configuration>
<configSections>
<section name="log4net" type="log4net.Config.Log4NetConfigurationSectionHandler,log4net" />
</configSections >
<log4net debug="true">
<appender name="LogFileAppender" type="log4net.Appender.FileAppender">
<layout type="log4net.Layout.XMLLayout" /> -->
<param name="File" value="TestLog.log" />
<param name="AppendToFile" value="false" />
<layout type="log4net.Layout.PatternLayout">
<header type="log4net.Util.PatternString" value="[START LOG] %newline" />
<footer type="log4net.Util.PatternString" value="[END LOG] %newline" />
<conversionPattern value="%d [%t] %-5p - %m%n" />
</layout>
<filter type="log4net.Filter.LevelRangeFilter">
<param name="LevelMin" value="DEBUG"/>
<param name="LevelMax" value="ERROR"/>
</filter>
</appender>
<root>
<level value="ALL" />
<appender-ref ref="LogFileAppender" />
</root>
<logger name="log4NetExample">
<!-- <appender-ref ref="B" /> -->
<level value="ALL" />
<appender-ref ref="LogFileAppender" />
</logger>
</log4net>
Run Code Online (Sandbox Code Playgroud)
Mel*_*ama 79
这可能有助于理解记录器可以分配级别的记录级别.级别是log4net.Core.Level类的实例.以严重性增加的顺序定义以下级别 - 日志级别.
每个设置级别记录的级别数:
ALL DEBUG INFO WARN ERROR FATAL OFF
•All
•DEBUG •DEBUG
•INFO •INFO •INFO
•WARN •WARN •WARN •WARN
•ERROR •ERROR •ERROR •ERROR •ERROR
•FATAL •FATAL •FATAL •FATAL •FATAL •FATAL
•OFF •OFF •OFF •OFF •OFF •OFF •OFF
Run Code Online (Sandbox Code Playgroud)
Ily*_*gan 36
对于大多数应用程序,您希望设置最低级别但不是最高级别.
例如,在调试代码时,将最低级别设置为DEBUG,并在生产中将其设置为WARN.
小智 13
以下是一些有关所有log4net级别优先级的代码:
TraceLevel(Level.All); //-2147483648
TraceLevel(Level.Verbose); // 10 000
TraceLevel(Level.Finest); // 10 000
TraceLevel(Level.Trace); // 20 000
TraceLevel(Level.Finer); // 20 000
TraceLevel(Level.Debug); // 30 000
TraceLevel(Level.Fine); // 30 000
TraceLevel(Level.Info); // 40 000
TraceLevel(Level.Notice); // 50 000
TraceLevel(Level.Warn); // 60 000
TraceLevel(Level.Error); // 70 000
TraceLevel(Level.Severe); // 80 000
TraceLevel(Level.Critical); // 90 000
TraceLevel(Level.Alert); // 100 000
TraceLevel(Level.Fatal); // 110 000
TraceLevel(Level.Emergency); // 120 000
TraceLevel(Level.Off); //2147483647
private static void TraceLevel(log4net.Core.Level level)
{
Debug.WriteLine("{0} = {1}", level, level.Value);
}
Run Code Online (Sandbox Code Playgroud)
ult*_*ife 10
正如其他人所指出的那样,通常最好指定一个最低日志记录级别来记录该级别以及任何其他更严重的级别.看起来你只是在考虑向后记录级别.
但是,如果您希望对记录单个级别进行更细粒度的控制,则可以使用以下语法告诉log4net仅记录一个或多个特定级别:
<filter type="log4net.Filter.LevelMatchFilter">
<levelToMatch value="WARN"/>
</filter>
Run Code Online (Sandbox Code Playgroud)
或者通过向筛选器添加"拒绝"节点来排除特定的日志记录级别.
您可以将多个过滤器堆叠在一起以指定多个级别.例如,如果您只想要WARN和FATAL级别.如果您想要的级别是连续的,那么LevelRangeFilter更合适.
参考文档:log4net.Filter.LevelMatchFilter
如果其他答案没有给你足够的信息,希望这将帮助你从log4net获得你想要的东西.
它的真实官方文档(Apache log4net™手册 - 简介)声明有以下级别......
...但奇怪的是当我查看程序集log4net.dll,v1.2.15.0密封类log4net.Core.Level我看到以下级别已定义...
public static readonly Level Alert;
public static readonly Level All;
public static readonly Level Critical;
public static readonly Level Debug;
public static readonly Level Emergency;
public static readonly Level Error;
public static readonly Level Fatal;
public static readonly Level Fine;
public static readonly Level Finer;
public static readonly Level Finest;
public static readonly Level Info;
public static readonly Level Log4Net_Debug;
public static readonly Level Notice;
public static readonly Level Off;
public static readonly Level Severe;
public static readonly Level Trace;
public static readonly Level Verbose;
public static readonly Level Warn;
Run Code Online (Sandbox Code Playgroud)
我已经将TRACE与PostSharp OnBoundaryEntry和OnBoundaryExit结合使用了很长时间.我想知道为什么这些其他级别不在文档中.此外,所有这些级别的真正优先事项是什么?
| 归档时间: |
|
| 查看次数: |
178787 次 |
| 最近记录: |