log4net使用详解
2021-05-03 14:28
标签:current 条件 write get message err 来源 功能 layout Log4net库是.Net下一个非常优秀的开源日志记录组件,是一个帮助程序员将日志信息输出到各种目标(控制台、文件、数据库等)的工具。 它具有:支持多数框架、可输出日志到多种目标、层级日志体系、可使用XML配置、可动态配置、模块化和可扩展化设计、灵活、高性能等特征。 日志记录器(Logger)的行为是分等级的,一般可分为5种日志等级(Level),优先级从高到低: 1、FATAL(致命错误):记录系统中出现的能使用系统完全失去功能,服务停止,系统崩溃等使系统无法继续运行下去的错误。例如,数据库无法连接,系统出现死循环。 2、ERROR(一般错误):记录系统中出现的导致系统不稳定,部分功能出现混乱或部分功能失效一类的错误。例如,数据字段为空,数据操作不可完成,操作出现异常等。 3、WARN(警告):记录系统中不影响系统继续运行,但不符合系统运行正常条件,有可能引起系统错误的信息。例如,记录内容为空,数据内容不正确等。 4、INFO(一般信息):记录系统运行中应该让用户知道的基本信息。例如,服务开始运行,功能已经开户等。 5、DEBUG (调试信息):记录系统用于调试的一切信息,内容或者是一些关键数据内容的输出。 我们可以控制到应用程序中相应级别的日志信息的开关。比如在定义了INFO级别, 则应用程序中所有DEBUG级别的日志信息将不被打印出来。 使用实例: 创建log4net.xml文件放到项目根目录。 xml配置文件: xml配置注释 输出样式: %p:输出日志信息的优先级,即DEBUG,INFO,WARN,ERROR,FATAL。 c# helper类代码: 项目中使用: log4net使用详解 标签:current 条件 write get message err 来源 功能 layout 原文地址:https://www.cnblogs.com/jiangqw/p/12121209.htmlxml version="1.0"?>
configuration>
configSections>
section name="log4net" type="log4net.Config.Log4NetConfigurationSectionHandler, log4net"/>
configSections>
log4net>
logger name="LogInfo" additivity="false">
level value="ALL" />
appender-ref ref="InfoAppender"/>
logger>
logger name="LogError" additivity="false">
level value="ALL" />
appender-ref ref="ErrorAppender"/>
logger>
logger name="LogSmsInfo" additivity="false">
level value="ALL" />
appender-ref ref="SmsInfoAppender"/>
logger>
logger name="LogSmsError" additivity="false">
level value="ALL" />
appender-ref ref="SmsErrorAppender"/>
logger>
appender name="InfoAppender" type="log4net.Appender.RollingFileAppender,log4net">
filter type="log4net.Filter.LevelRangeFilter">
param name="LevelMin" value="INFO" />
param name="LevelMax" value="INFO" />
filter>
param name="File" value="Log\\"/>
param name="DatePattern" value="yyyy-MM-dd‘.txt‘"/>
appendToFile value="true"/>
rollingStyle value="Composite"/>
staticLogFileName value="false"/>
maximumFileSize value="4MB"/>
maxSizeRollBackups value="-1"/>
layout type="log4net.Layout.PatternLayout">
conversionPattern value="%n%n %date{yyyy-MM-dd HH:mm:ss,fff} %m"/>
layout>
appender>
appender name="ErrorAppender" type="log4net.Appender.RollingFileAppender,log4net">
filter type="log4net.Filter.LevelRangeFilter">
param name="LevelMin" value="INFO" />
param name="LevelMax" value="INFO" />
filter>
param name="File" value="log\\"/>
param name="DatePattern" value="yyyy-MM-dd ‘error.txt‘"/>
appendToFile value="true"/>
rollingStyle value="Composite"/>
staticLogFileName value="false"/>
maximumFileSize value="4MB"/>
maxSizeRollBackups value="-1"/>
layout type="log4net.Layout.PatternLayout">
conversionPattern value="%n%n %date{yyyy-MM-dd HH:mm:ss,fff} %m"/>
layout>
appender>
log4net>
configuration>
%d:输出日志时间点的日期或时间,默认格式为ISO8601,也可以在其后指定格式,如:%d{yyyy/MM/dd HH:mm:ss,SSS}。
%r:输出自应用程序启动到输出该log信息耗费的毫秒数。
%t:输出产生该日志事件的线程名。
%l:输出日志事件的发生位置,相当于%c.%M(%F:%L)的组合,包括类全名、方法、文件名以及在代码中的行数。例如:test.TestLog4j.main(TestLog4j.java:10)。
%c:输出日志信息所属的类目,通常就是所在类的全名。
%M:输出产生日志信息的方法名。
%F:输出日志消息产生时所在的文件名称。
%L::输出代码中的行号。
%m::输出代码中指定的具体日志信息。
%n:输出一个回车换行符,Windows平台为"\r\n",Unix平台为"\n"。
%x:输出和当前线程相关联的NDC(嵌套诊断环境),尤其用到像java servlets这样的多客户多线程的应用中。
%%:输出一个"%"字符。
另外,还可以在%与格式字符之间加上修饰符来控制其最小长度、最大长度、和文本的对齐方式。如:
1)%20c:指定输出category的名称,最小的长度是20,如果category的名称长度小于20的话,默认的情况下右对齐。
2)%-20c:"-"号表示左对齐。
3)%.30c:指定输出category的名称,最大的长度是30,如果category的名称长度大于30的话,就会将左边多出的字符截掉,但小于30的话也不会补空格。public class Log4Helper
{
public static log4net.ILog Loginfo = log4net.LogManager.GetLogger("LogInfo");
public static log4net.ILog Logerror = log4net.LogManager.GetLogger("LogError");
public static Log4Helper MInstance;
public static Log4Helper GetInstance()
{
return MInstance ?? (MInstance = new Log4Helper());
}
public Log4Helper()
{
var file = new FileInfo(AppDomain.CurrentDomain.BaseDirectory + "\\log4net.xml");
log4net.Config.XmlConfigurator.Configure(file);
}
///
///