bool isInfoEnabled;
级别 | 允许的方法 | Boolean属性 | 优先级别 |
OFF |
|
| Highest |
FATAL | void Fatal(...); | bool IsFatalEnabled; |
|
RROR | void Error(...); | bool IsErrorEnabled; |
|
WARN | void Warn(...); | bool IsWarnEnabled; |
|
INFO | void Info(...); | bool IsInfoEnabled; |
|
DEBUG | void Debug(...); | bool IsDebugEnabled; |
|
ALL |
|
| Lowest |
Logger.Debug("message");
Logger.Warn("message");
{
Logger.Debug("message");
}
2.4 Appender Filters
一个Appender 对象缺省地将所有的日志事件传递到输出流。Appender的过滤器(Appender Filters) 可以按照不同的标准过滤日志事件。在log4net.Filter的名字空间下已经有几个预定义的过滤器。使用这些过滤器,你可以按照日志级别范围过滤日志事件,或者按照某个特殊的字符串进行过滤。你可以在API的帮助文件中发现更多关于过滤器的信息。
2.5 Layout
Layout 组件用于向用户显示最后经过格式化的输出信息。输出信息可以以多种格式显示,主要依赖于我们采用的Layout组件类型。可以是线性的或一个XML文件。Layout组件和一个Appender组件一起工作。API帮助手册中有关于不同Layout组件的列表。一个Appender对象,只能对应一个Layout对象。要实现你自己的Layout类,你需要从log4net.Layout.LayoutSkeleton类继承,它实现了ILayout接口。
3 在程序中使用log4net
3.1. 在自己的项目中添加对 log4net.dll 的引用。
3.2. 设置配置文件App.config
示例:
< configuration >
<!-- 如果不用App.config作配置文件,则configSections节不是必须的。 -->
< configSections >
<!-- “type”属性的完整格式为:配置节处理器类名,程序集名称,Version=程序集版本号,Culture=区域信息,PublicKeyToken=公钥 -->
< section name ="log4net" type ="log4net.Config.Log4NetConfigurationSectionHandler,log4net" />
</ configSections >
< log4net >
<!-- 日志记录器logger,可以有多个 -->
< logger name ="AppLogger" >
< level value ="INFO" />
< appender-ref ref ="LogFileAppender" />
< appender-ref ref ="ConsoleAppender" />
</ logger >
< logger name ="Form1" >
< level value ="DEBUG" />
< appender-ref ref ="LogFileAppender" />
</ logger >
<!-- 所有logger的基,root的设置在所有logger中都起作用。
当在root和logger中重复设定相同的appender时,你会发现同一日志信息将被记录两次。 -->
<!-- <root>
<level value="WARN" />
<appender-ref ref="LogFileAppender" />
<appender-ref ref="ConsoleAppender" />
</root> -->
<!-- 一个appender可以由多个logger共用,当然一个logger可以指定多个appender。 -->
< appender name ="LogFileAppender" type ="log4net.Appender.FileAppender" >
< param name ="File" value ="App.log" />
< param name ="AppendToFile" value ="true" />
< layout type ="log4net.Layout.PatternLayout" >
< param name ="Header" value ="[Header]/r/n" />
< param name ="Footer" value ="[Footer]/r/n" />
< param name ="ConversionPattern" value ="%d [%t] %-5p %c [%x] %X{auth} - %m%n" />
</ layout >
< filter type ="log4net.Filter.LevelRangeFilter" >
< param name ="LevelMin" value ="DEBUG" />
< param name ="LevelMax" value ="FATAL" />
</ filter >
</ appender >
< appender name ="ConsoleAppender" type ="log4net.Appender.ConsoleAppender" >
< layout type ="log4net.Layout.PatternLayout" >
< param name ="ConversionPattern" value ="%d [%t] %-5p %c [%x] %X{auth} - %m%n" />
</ layout >
</ appender >
</ log4net >
</ configuration >
3.3 代码里实现
{
log4net.ILog log = log4net.LogManager.GetLogger("AppLogger");
log.Debug("debug");
log.Info("info");
log.Warn("warn");
log.Error("error");
}