log4net 使用
来源:互联网 发布:淘宝开店详细流程 编辑:程序博客网 时间:2024/05/01 11:03
1.简介
2.使用
1.引用log4net.dll到项目中
2.项目配置文件中配置log4net,web中对应的是web.config文件,winform对应的是app.config
在web.cofig根节点 configuration 中加入如下section:
<configSections>
<section name="log4net" type="log4net.Config.Log4NetConfigurationSectionHandler, log4net" />
</configSections>
同时在configuration 根节点下加入下面的节点,
<log4net>
<!--定义输出到文件中-->
<appender name="LogFileAppender" type="log4net.Appender.FileAppender">
<!--定义文件存放位置-->
<file value="D:/log4netfile.txt" />
<appendToFile value="true" />
<rollingStyle value="Date" />
<datePattern value="yyyyMMdd-HH:mm:ss" />
<layout type="log4net.Layout.PatternLayout">
<!--每条日志末尾的文字说明-->
<footer value="testla" />
<!--输出格式-->
<!--样例-->
<conversionPattern value="记录时间:%date 线程ID:[%thread] 日志级别:%-5level 出错类:%logger property:[%property{NDC}] - 错误描述:%message%newline" />
</layout>
<filter levelMin="DEBUG"/>
<filter levelMax="WARN"/>
</appender>
<!--定义输出到控制台命令行中-->
<appender name="ConsoleAppender" type="log4net.Appender.ConsoleAppender">
<layout type="log4net.Layout.PatternLayout">
<conversionPattern value="%date [%thread] %-5level %logger [%property{NDC}] - %message%newline" />
</layout>
</appender>
<!--定义输出到windows事件中-->
<appender name="EventLogAppender" type="log4net.Appender.EventLogAppender">
<layout type="log4net.Layout.PatternLayout">
<conversionPattern value="%date [%thread] %-5level %logger [%property{NDC}] - %message%newline" />
</layout>
</appender>
<!--定义输出到数据库中,这里举例输出到Access数据库中,数据库为C盘的log4net.mdb-->
<appender name="AdoNetAppender_Access" type="log4net.Appender.AdoNetAppender">
<connectionString value="Provider=Microsoft.Jet.OLEDB.4.0;Data Source=C:log4net.mdb" />
<commandText value="INSERT INTO LogDetails ([LogDate],[Thread],[Level],[Logger],[Message]) VALUES (@logDate, @thread, @logLevel, @logger,@message)" />
<!--定义各个参数-->
<parameter>
<parameterName value="@logDate" />
<dbType value="String" />
<size value="240" />
<layout type="log4net.Layout.PatternLayout">
<conversionPattern value="%date" />
</layout>
</parameter>
<parameter>
<parameterName value="@thread" />
<dbType value="String" />
<size value="240" />
<layout type="log4net.Layout.PatternLayout">
<conversionPattern value="%thread" />
</layout>
</parameter>
<parameter>
<parameterName value="@logLevel" />
<dbType value="String" />
<size value="240" />
<layout type="log4net.Layout.PatternLayout">
<conversionPattern value="%level" />
</layout>
</parameter>
<parameter>
<parameterName value="@logger" />
<dbType value="String" />
<size value="240" />
<layout type="log4net.Layout.PatternLayout">
<conversionPattern value="%logger" />
</layout>
</parameter>
<parameter>
<parameterName value="@message" />
<dbType value="String" />
<size value="240" />
<layout type="log4net.Layout.PatternLayout">
<conversionPattern value="%message" />
</layout>
</parameter>
</appender>
<!--定义日志的输出媒介,下面定义日志以四种方式输出。也可以下面的按照一种类型或其他类型输出。-->
<root>
<level value="DEBUG" />
<!--文件形式记录日志-->
<appender-ref ref="LogFileAppender" />
<!--控制台控制显示日志-->
<appender-ref ref="ConsoleAppender" />
<!--Windows事件日志-->
<appender-ref ref="EventLogAppender" />
<!-- 如果不启用相应的日志记录,可以通过这种方式注释掉
<appender-ref ref="AdoNetAppender_Access" />
-->
</root>
</log4net>
3.启动application时,启动log4net
web中在Global.asax.cs的Application_Start过程中添加如下代码:
log4net.Config.DOMConfigurator.Configure();//新版本log4net,可能会提示你用新的方法代替,
winform中在main函数在的类的namespace上面声明如下attr即可 [assembly: log4net.Config.XmlConfigurator(Watch = true)]
4.调用log4net
//创建日志记录组件实例
ILog log = log4net.LogManager.GetLogger(MethodBase.GetCurrentMethod().DeclaringType);
//记录错误日志
log.Error("error",new Exception("发生了一个异常"));
//记录严重错误
log.Fatal("fatal",new Exception("发生了一个致命错误"));
//记录一般信息
log.Info("info");
//记录调试信息
log.Debug("debug");
//记录警告信息
log.Warn("warn");
ps:日志就会根据你的配置输出到对应的地方了
5.关于配置中ConversionPattern 的转换符
每种转换符号都以%开始,后面跟着一个格式符号和换符号。
%-数字 :该项的最小长度,小于最小长度的用空格填充
%m(message):输出的日志消息
%n(new line):换行
%d(datetime):输出当前语句运行的时刻
%r(run time):输出程序从运行到执行到当前语句时消耗的毫秒数
%t(thread id):当前语句所在的线程ID
%p(priority): 日志的当前优先级别,即DEBUG、INFO、WARN…等
%c(class):当前日志对象的名称,
%L(line ):输出语句所在的行号
%F(file name):输出语句所在的文件名
如 "%-5p [%t]- %m%n"
log4net.ILog M_Log = LogManager.GetLogger(this.GetType());
M_Log .Debug("Test");
生成输出为
DEBUG [main]- Test
6、level级别
在配置文件的ROOT里有<level value="DEBUG" />设置级别的语句level 有 ALL<DEBUG <INFO<WARN<ERROR<FATAL<OFF 这么几级,大小关系也是这样 如果你调用 m_log.Info("message") 即是INFO级别,如果设置的级别为<level value="ERROR" />那就输出不到日志文件,相反如果低于就能输出
另一个.net开源日志工具,NLog使用地址:http://blog.csdn.net/xuwei_xuwei/article/details/30040463- log4net使用
- Log4Net使用
- Log4Net使用
- log4net使用
- log4net使用
- log4Net使用
- log4net使用
- log4net使用
- log4net 使用
- log4Net使用
- log4net使用
- log4net 使用
- Log4Net使用
- log4net 使用
- Log4Net使用
- Log4net使用
- log4net 使用
- Log4net使用
- 内核初始化优化宏 ,初始化顺序, __init,__devexit等
- DSP/BIOS的点点滴滴
- EasyUI 动态tab页界面小结
- Makefile 管理工具 — Automake and Autoconf
- Yii Using 3rd-Party Libraries(使用第三方库)
- log4net 使用
- 不定式作主语
- 14 numbers every developer should know
- CentOS访问Windows共享文件夹的两种方法 .
- Cocos2d-x3.0之路--01(说些题外话)
- 这突然的问话让潇雨菲怔
- “镜雅,我可以这么
- 青剑的脸也随之变色,相
- 光场相机介绍