日志插件 log4net 的使用
文本格式说明
可以记载的日志类别包括:FATAL(致命错误)、ERROR(一般错误)、WARN(警告)、INFO(一般信息)、DEBUG(调试信息)。
文本参数说明
%m(message):输出的日志消息,如ILog.Debug(…)输出的一条消息
%n(new line):换行
%d(datetime):输出当前语句运行的时刻
%r(run time):输出程序从运行到执行到当前语句时消耗的毫秒数
%t(thread id):当前语句所在的线程ID 等同于 %thread
%p(priority): 日志的当前优先级别,即DEBUG、INFO、WARN…等
%c(class):当前日志对象的名称,例如:
模式字符串为:%-10c -%m%n
代码为:
ILog log=LogManager.GetLogger(“Exam.Log”);
log.Debug(“Hello”);
则输出为下面的形式:
Exam.Log - Hello
%L:输出语句所在的行号
%F:输出语句所在的文件名
%-数字:表示该项的最小长度,如果不够,则用空格填充
%newline: 错误详情
%message: 自定义输出信息
%logger: 类
%property: 属性
以下为个人定义的模板
%n==========
%n【日志级别】%-5level
%n【记录时间】%date
%n【线程编号】[%thread]
%n【执行时间】[%r]毫秒
%n【出错文件】%F
%n【出错行号】%L
%n【出错的类】%logger 属性[%property{NDC}]
%n【错误描述】%message
%n【错误详情】%newline
输出示例:
==========
【日志级别】ERROR
【记录时间】2012-11-08 15:49:37,625
【线程编号】[10]
【执行时间】[180]毫秒
【出错文件】C:\Users\Administrator\Documents\Visual Studio 2010\Projects\ConsoleApplication5\ConsoleApplication5\Program.cs
【出错行号】24
【出错的类】ConsoleApplication5.Program 属性[(null)]
【错误描述】错误
【错误详情】
System.DivideByZeroException: 尝试除以零。
在 ConsoleApplication5.Program.Main(String[] args) 位置 C:\Users\Administrator\Documents\Visual Studio 2010\Projects\ConsoleApplication5\ConsoleApplication5\Program.cs:行号 20
==========
【日志级别】ERROR
【记录时间】2012-11-08 15:49:37,666
【线程编号】[10]
【执行时间】[221]毫秒
【出错文件】C:\Users\Administrator\Documents\Visual Studio 2010\Projects\ConsoleApplication5\ConsoleApplication5\Program.cs
【出错行号】28
【出错的类】ConsoleApplication5.Program 属性[(null)]
【错误描述】error
【错误详情】
System.Exception: 发生了一个异常
使用说明:
配置文件:
节点: <configuration>中添加
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
|
< log4net > <!--定义输出到文件中--> < appender name="SysAppender" type="log4net.Appender.RollingFileAppender"> <!--日志的路径--> < file value="Logs/Log4Net/" /> <!--是否覆盖,默认是追加true--> < appendToFile value="true"/> < rollingStyle value="Composite"/> <!--文件名称--> < DatePattern value="yyyy-MM-dd'.log'"></ DatePattern > <!--设置无限备份=-1 ,最大备份数为1000--> < param name="MaxSizeRollBackups" value="1000"/> <!--每个文件的大小--> < param name="MaximumFileSize" value="500KB"/> <!--名称是否可以更改为false为可以更改--> < param name="StaticLogFileName" value="false"/> < layout type="log4net.Layout.PatternLayout"> <!--输出格式--> < conversionPattern value="%n========== %n【日志级别】%-5level %n【记录时间】%date %n【线程编号】[%thread] %n【执行时间】[%r]毫秒 %n【出错文件】%F %n【出错行号】%L %n【出错的类】%logger 属性[%property{NDC}] %n【错误描述】%message %n【错误详情】%newline"/> </ layout > </ appender > <!--定义输出到控制台命令行中--> < appender name="ConsoleAppender" type="log4net.Appender.ConsoleAppender"> < layout type="log4net.Layout.PatternLayout"> < conversionPattern value="%n========== %n【日志级别】%-5level %n【记录时间】%date %n【线程编号】[%thread] %n【执行时间】[%r]毫秒 %n【出错文件】%F %n【出错行号】%L %n【出错的类】%logger 属性[%property{NDC}] %n【错误描述】%message %n【错误详情】%newline"/> </ layout > </ appender > <!--定义输出到windows事件中--> < appender name="EventLogAppender" type="log4net.Appender.EventLogAppender"> < layout type="log4net.Layout.PatternLayout"> < conversionPattern value="%n========== %n【日志级别】%-5level %n【记录时间】%date %n【线程编号】[%thread] %n【执行时间】[%r]毫秒 %n【出错文件】%F %n【出错行号】%L %n【出错的类】%logger 属性[%property{NDC}] %n【错误描述】%message %n【错误详情】%newline"/> </ layout > </ appender > <!--定义日志的输出媒介,下面定义日志以四种方式输出。也可以下面的按照一种类型或其他类型输出。--> < root > <!--文件形式记录日志--> > < appender-ref ref="SysAppender"/> <!--控制台控制显示日志--> < appender-ref ref="ConsoleAppender"/> <!--Windows事件日志--> <!--<appender-ref ref="EventLogAppender"/>--> <!-- 如果不启用相应的日志记录,可以通过这种方式注释掉 <appender-ref ref="AdoNetAppender_Access" /> --> </ root > </ log4net > |
代码中:
引用
using log4net;
using System.Reflection
在命名空间中添加[红色的内容]
[assembly: log4net.Config.XmlConfigurator(Watch = true)]
namespace ConsoleApplication5
调用示例:
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
|
using System; using System.Collections.Generic; using System.Text; using log4net; using System.Reflection; [assembly: log4net.Config.XmlConfigurator(Watch = true )] namespace ConsoleApplication5 { class Program { static void Main( string [] args) { //创建日志记录组件实例 ILog log = log4net.LogManager.GetLogger(MethodBase.GetCurrentMethod().DeclaringType); //记录严重错误 log.Fatal( "严重错误" ); log.Fatal( "严重错误" , new Exception( "发生了一个致命错误" )); //记录错误日志 log.Error( "错误" ); log.Error( "错误" , new Exception( "发生了一个异常" )); //记录警告信息 log.Warn( "警告" ); log.Error( "警告" , new Exception( "有一个警告信息" )); //记录一般信息 log.Info( "一般信息" ); log.Error( "一般信息" , new Exception( "发出一个一般信息" )); //记录调试信息 log.Debug( "调试信息" ); log.Error( "调试信息" , new Exception( "发生了一个调试信息" )); Console.Read(); } } } |
示例程序下载: 日志记录插件_log4net.zip
日志插件 log4net 的使用的更多相关文章
- .NET技术-3.0. 日志插件 log4net
.NET技术-3.0. 日志插件 log4net 背景:框架 NetFramework3.5 1. 新建控制台程序 2. 程序包管理器控制台中 增加 Nuget包 Install-Package lo ...
- 日志插件 log4net 的配置和使用
文本格式说明 可以记载的日志类别包括:FATAL(致命错误).ERROR(一般错误).WARN(警告).INFO(一般信息).DEBUG(调试信息). 文本参数说明 %m(message):输出的日志 ...
- asp.net MVC日志插件Log4Net学习笔记二:保存日志到sqlserver的配置
1.写到sqlserver的配置: <!--保存到SQLSERVER数据库日志--> <log4net> <appender name="AdoNetAppen ...
- asp.net MVC日志插件Log4Net学习笔记一:保存日志到本地
log4net(Log For Net)是Apache开源的应用于.Net框架的日志记录工具,详细信息参见Apache网站.它是针对Java的log4j(Log For Java的)姊妹工具.用过lo ...
- 转:日志插件 log4net 的使用
文本格式说明 可以记载的日志类别包括:FATAL(致命错误).ERROR(一般错误).WARN(警告).INFO(一般信息).DEBUG(调试信息). 文本参数说明 %m(message):输出的日志 ...
- 基于log4net的日志组件扩展封装,实现自动记录交互日志 XYH.Log4Net.Extend(微服务监控)
背景: 随着公司的项目不断的完善,功能越来越复杂,服务也越来越多(微服务),公司迫切需要对整个系统的每一个程序的运行情况进行监控,并且能够实现对自动记录不同服务间的程序调用的交互日志,以及通一个服务或 ...
- 搭建一套自己实用的.net架构(2)【日志模块-log4net】
先谈谈简单的模块,日志.在系统中日志模块是必须的,什么系统日志,操作日志,调试日志.这里用的是log4net. 对log4net还不熟悉的小伙伴们赶快去搜索基础教程哦, 我这里就不温故了. 那么有人要 ...
- c#的日志插件NLog基本使用
本文介绍c#的日志插件NLog 安装插件 创建logger 日志级别 书写日志信息 配置 包装器 布局 安装插件 直接下载插件包 Install-Package NLog.Config 创建logge ...
- [转]Log4Net日志插件配置详解
log4net是一款优秀的第三方日志框架,可以很容易的加载到开发项目中(引用log4net的dll,再配置些基本参数即可),帮助程序员把日志信息输出到各种不同的目标,常见的有文本.数据库.window ...
随机推荐
- 【转】MySQL性能优化的21个最佳实践
今天,数据库的操作越来越成为整个应用的性能瓶颈了,这点对于Web应用尤其明显.关于数据库的性能,这并不只是DBA才需要担心的事,而这更是我们程序员需要去关注的事情.当我们去设计数据库表结构,对操作数据 ...
- [异常解决] ubuntu上安采用sudo启动的firefox,ibus输入法失效问题解决
采用sudo启动的应用是root权限的应用, ibus失效是因为ibus的初始配置采用user权限: 而root下运行的firefox输入法的配置还是停留在默认情况~ 解决方案是在shell下以roo ...
- Sqlserver 如何获取每组中的第一条记录
在日常生活方面,我们经常需要记录一些操作,类似于日志的操作,最后的记录才是有效数据,而且可能它们属于不同的方面.功能下面,从数据库的术语来说,就是查找出每组中的一条数据. 例子 我们要从上面获得的有效 ...
- C# 加密–RSA前端与后台的加密&解密
1. 前言 本问是根据网上很多文章的总结得到的. 2. 介绍 RSA加密算法是一种非对称加密算法. 对极大整数做因数分解的难度决定了RSA算法的可靠性.换言之,对一极大整数做因数分解愈困难,RSA算法 ...
- Memcache分布式部署方案
基础环境 其实基于PHP扩展的Memcache客户端实际上早已经实现,而且非常稳定.先解释一些名词,Memcache是danga.com的一个开源项目,可以类比于MySQL这样的服务,而PHP扩展的M ...
- vue初体验:实现一个增删查改成绩单
前端变化层出不穷,去年NG火一片,今年react,vue火一片,ng硬着头皮看了几套教程,总被其中的概念绕晕,react是faceback出品,正在不断学习中,同时抽时间了解了vue,查看了vue官方 ...
- Atitit.java图片图像处理attilax总结
Atitit.java图片图像处理attilax总结 BufferedImage extends java.awt.Image 获取图像像素点 image.getRGB(i, lineIndex); ...
- HTML中的title换行问题
有时我们需要在html元素的title中换行显示信息.以下几种方法均可以实现: 直接在titile属性中使用换行,如下所示: asd">asdsadsad</a> 在tit ...
- [java]输入一个算术表达式输出结果
动手有益. 输入一个表达式,没有括号,数字小于0-9之间,输出计算结果,所有的中间结果化为整形.例如: 输入:3+8×2/9-2 输出:2 /** * input a calculate stri ...
- Hard Drive Inspector Pro 4.26.208(硬盘检测工具)简体中文特别版
Hard Drive Inspector监视硬盘错误并且接收警报,检查变化并实施诊断.例如:驱动器旋转时间增加以及数次重试才能运转驱动器通常意味着发动机和/或者轴存在可以导致数据丢失的错误.HardD ...