log4net使用详解
2015-06-01 10:13
260 查看
参考博客 :http://blog.csdn.net/zhoufoxcn/article/details/2220533
经典视频:http://edu.ibeifeng.com/view-video-id-1771.html
官网:http://logging.apache.org/log4net
<configSections>
<section name="log4net" type="log4net.Config.Log4NetConfigurationSectionHandler,log4net"/>
</configSections>
除此之外,还要在顶级节点<configuration>下增加<log4net>子节点。在<log4net>节点下就可以增加<appender>子节点,每个<appender>子节点代表一种记录日志的方式(仅在这里配置了不代表启用了)。
具体说来有如下Appender:
AdoNetAppender:利用ADO.NET记录到数据库的日志。
AnsiColorTerminalAppender:在ANSI 窗口终端写下高亮度的日志事件。
AspNetTraceAppender:能用asp.net中Trace的方式查看记录的日志。
BufferingForwardingAppender:在输出到子Appenders之前先缓存日志事件。
ConsoleAppender:将日志输出到控制台。
EventLogAppender:将日志写到Windows Event Log.
FileAppender:将日志写到文件中。
LocalSyslogAppender:将日志写到local syslog service (仅用于UNIX环境下).
MemoryAppender:将日志存到内存缓冲区。
NetSendAppender:将日志输出到Windows Messenger service.这些日志信息将在用户终端的对话框中显示。
RemoteSyslogAppender:通过UDP网络协议将日志写到Remote syslog service。
RemotingAppender:通过.NET Remoting将日志写到远程接收端。
RollingFileAppender:将日志以回滚文件的形式写到文件中。
SmtpAppender:将日志写到邮件中。
TraceAppender:将日志写到.NET trace 系统。
UdpAppender:将日志connectionless UDP datagrams的形式送到远程宿主或以UdpClient的形式广播。
关于使用log4net中可能会使用到的一些参数
%m(message):输出的日志消息,如ILog.Debug(…)输出的一条消息
%n(new line):换行
%d(datetime):输出当前语句运行的时刻
%r(run time):输出程序从运行到执行到当前语句时消耗的毫秒数
%t(thread id):当前语句所在的线程ID
%p(priority): 日志的当前优先级别,即DEBUG、INFO、WARN…等
%c(class):当前日志对象的名称,例如:
%f(file):输出语句所在的文件名。
%l(line):输出语句所在的行号。
%数字:表示该项的最小长度,如果不够,则用空格填充,如“%-5level”表示level的最小宽度是5个字符,如果实际长度不够5个字符则以空格填充。
下面以一个实际的例子来说明问题,比如在配置中有“%date [%thread] (%file:%line) %-5level %logger [%property{NDC}] - %message%newline”,那么实际的日志中会是如下格式:
“记录时间:2010-11-17 16:16:36,561 线程ID:[9] 日志级别:文件:所在行ERROR 出错类:Log4NetDemo.Program property:[(null)] - 错误描述:error
System.Exception: 在这里发生了一个异常,Error Number:2036084948”
若这个为log4net.config,则需要在assemblyinfo.cs中写入
[assembly: log4net.Config.DOMConfigurator(ConfigFile = "log4net.config",Watch = true)]
或者添加Global.aspx,然后在页面中添加
protected void Application_Start(object sender, EventArgs e)
{
string filePath = Server.MapPath("~/log4net.config");
FileInfo fi=new FileInfo(filePath);
log4net.Config.DOMConfigurator.Configure(fi);
}
因为新建项目会有assemblyinfo.cs文件,但是网站就没有
经典视频:http://edu.ibeifeng.com/view-video-id-1771.html
官网:http://logging.apache.org/log4net
在config文件中的配置
要使用log4net,首先要在config文件的<configSections>节点中增加配置(如果没有这个节点请手动增加),如下:<configSections>
<section name="log4net" type="log4net.Config.Log4NetConfigurationSectionHandler,log4net"/>
</configSections>
除此之外,还要在顶级节点<configuration>下增加<log4net>子节点。在<log4net>节点下就可以增加<appender>子节点,每个<appender>子节点代表一种记录日志的方式(仅在这里配置了不代表启用了)。
具体说来有如下Appender:
AdoNetAppender:利用ADO.NET记录到数据库的日志。
AnsiColorTerminalAppender:在ANSI 窗口终端写下高亮度的日志事件。
AspNetTraceAppender:能用asp.net中Trace的方式查看记录的日志。
BufferingForwardingAppender:在输出到子Appenders之前先缓存日志事件。
ConsoleAppender:将日志输出到控制台。
EventLogAppender:将日志写到Windows Event Log.
FileAppender:将日志写到文件中。
LocalSyslogAppender:将日志写到local syslog service (仅用于UNIX环境下).
MemoryAppender:将日志存到内存缓冲区。
NetSendAppender:将日志输出到Windows Messenger service.这些日志信息将在用户终端的对话框中显示。
RemoteSyslogAppender:通过UDP网络协议将日志写到Remote syslog service。
RemotingAppender:通过.NET Remoting将日志写到远程接收端。
RollingFileAppender:将日志以回滚文件的形式写到文件中。
SmtpAppender:将日志写到邮件中。
TraceAppender:将日志写到.NET trace 系统。
UdpAppender:将日志connectionless UDP datagrams的形式送到远程宿主或以UdpClient的形式广播。
关于使用log4net中可能会使用到的一些参数
%m(message):输出的日志消息,如ILog.Debug(…)输出的一条消息
%n(new line):换行
%d(datetime):输出当前语句运行的时刻
%r(run time):输出程序从运行到执行到当前语句时消耗的毫秒数
%t(thread id):当前语句所在的线程ID
%p(priority): 日志的当前优先级别,即DEBUG、INFO、WARN…等
%c(class):当前日志对象的名称,例如:
%f(file):输出语句所在的文件名。
%l(line):输出语句所在的行号。
%数字:表示该项的最小长度,如果不够,则用空格填充,如“%-5level”表示level的最小宽度是5个字符,如果实际长度不够5个字符则以空格填充。
下面以一个实际的例子来说明问题,比如在配置中有“%date [%thread] (%file:%line) %-5level %logger [%property{NDC}] - %message%newline”,那么实际的日志中会是如下格式:
“记录时间:2010-11-17 16:16:36,561 线程ID:[9] 日志级别:文件:所在行ERROR 出错类:Log4NetDemo.Program property:[(null)] - 错误描述:error
System.Exception: 在这里发生了一个异常,Error Number:2036084948”
若这个为log4net.config,则需要在assemblyinfo.cs中写入
[assembly: log4net.Config.DOMConfigurator(ConfigFile = "log4net.config",Watch = true)]
或者添加Global.aspx,然后在页面中添加
protected void Application_Start(object sender, EventArgs e)
{
string filePath = Server.MapPath("~/log4net.config");
FileInfo fi=new FileInfo(filePath);
log4net.Config.DOMConfigurator.Configure(fi);
}
因为新建项目会有assemblyinfo.cs文件,但是网站就没有
相关文章推荐
- 在DLL中获取主进程窗口句柄
- MFC让按钮控件显示*.ico图标和文字说明
- android系统时间获取方式
- uefi读硬盘第一次成功,第二次却失败
- 安装endnote后word卡解决方法
- 『Android/Java』Android Studio XML Editor Preview Error:The following classes could not be found
- 3D数学基础及图形与游戏开发的学习 (二)
- 怎么识别图片中的日文
- 使用C# + Xamarin开发Android应用-- 动态添加控件
- 马化腾回忆创业:曾假扮女孩子陪聊
- 社説 20150601 関電再値上げ 原発再稼働を着実に推進せよ
- 如何变成一个有趣的人
- 奇怪的连通图_1545
- 01-复杂度2. Maximum Subsequence Sum (25)
- 201606011000_《JavaScript通用的创建函数》
- TinyRMI---RMI的封装、扩展及踩到的坑的解决
- 网易新闻客户端iOS版本中新闻详情页(UIWebView)技术实现的分析探讨
- 第五十六条:遵守普遍接受的命名惯例
- missing required architecture i386 解决方法
- 社説 20150601 スカイマーク なお不透明な再生への道筋