log4net库是Apache log4j框架在Microsoft .NET平台的实现,是一个帮助程序员将日志信息输出到各种目标(控制台、文件、数据库等)的工具
官网:http://logging.apache.org/log4net/index.html
安装:Install-Package log4net
1.复制log4net.xml文件
<log4net> <appender name="RollingLogFileAppender" type="log4net.Appender.RollingFileAppender"> <!--日志文件名开头--> <file value="Logs/project.log" /> <!--是否追加到文件--> <appendToFile value="true" /> <!--混合使用日期和文件大小变换日志文件名--> <rollingStyle value="Composite" /> <!--日期的格式--> <datePattern value="yyyyMMdd" /> <!--最大变换数量--> <maxSizeRollBackups value="30" /> <!--最大文件大小--> <maximumFileSize value="1MB" /> <layout type="log4net.Layout.PatternLayout"> <conversionPattern value="%d [%t] %-5p %m - [%F:%L]%n" /> </layout> </appender> <appender name="ConsoleAppender" type="log4net.Appender.ConsoleAppender"> <layout type="log4net.Layout.PatternLayout"> <conversionPattern value="%d [%t] %-5p %m%n" /> </layout> </appender> <root> <level value="DEBUG"></level> <appender-ref ref="RollingLogFileAppender"></appender-ref> <!--<appender-ref ref="ConsoleAppender"></appender-ref>--> </root> </log4net>
2.初始化,读入配置
var path = Server.MapPath("~/log4net.xml");
log4net.Config.XmlConfigurator.Configure(new FileInfo(path));
3.使用,可以更改配置文件log4net.config自己配置
方式一:log4net.LogManager.GetLogger(GetType());
方式二:log4net.LogManager.GetLogger("logger-name");
方式三:LogManager.GetLogger(System.Reflection.MethodBase.GetCurrentMethod().DeclaringType);
配置说明
[level]
包括ROOT在内的每一个LOGGER(ROOT也是一个LOGGER,只不过,他是祖先而已,别的方面,跟其他LOGGER一样),都可以定义Level
level定义记录的日志级别,就是说,你要记录哪个级别以上的日志,级别由高往低依次是:
None
Fatal
ERROR
WARN
DEBUG
INFO
ALL
[layout]
%m(message):输出的日志消息,如ILog.Debug(…)输出的一条消息
%n(new line):换行
%d(datetime):输出当前语句运行的时刻
%r(run time):输出程序从运行到执行到当前语句时消耗的毫秒数
%t(thread id):当前语句所在的线程ID
%p(priority): 日志的当前优先级别,即DEBUG、INFO、WARN…等
%c(class):当前日志对象的名称,例如:
%L:输出语句所在的行号
%F:输出语句所在的文件名
%-数字:表示该项的最小长度,如果不够,则用空格填充
扩展:
也可以直接在*.config添加以下节点,这样初始化配置的时候无需传参配置
<configSections> <section name="log4net" type="log4net.Config.Log4NetConfigurationSectionHandler, log4net" /> </configSections>
参考:
http://logging.apache.org/log4net/release/manual/configuration.html