日志插件 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
%method:输出语句所在的方法名
%L:输出语句所在的行号
%F:输出语句所在的文件名
%-数字:表示该项的最小长度,如果不够,则用空格填充
%newline: 错误详情
%message: 自定义输出信息
%logger: 类
%property: 属性

 

以下为个人定义的模板

<conversionPattern value="
%n======= ===
%n【日志级别】%-5level
%n【记录时间】%date
%n【线程编号】[%thread]
%n【执行时间】[%r]毫秒
%n【出错文件】%F
%n【出错类名】%class
%n【出错函数】%method
%n【出错行号】%L
%n【日志对象】%logger
%n【日志属性】%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【出错类名】%class
%n【出错函数】%method
%n【出错行号】%L
%n【日志对象】%logger
%n【日志属性】%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【出错类名】%class
%n【出错函数】%method
%n【出错行号】%L
%n【日志对象】%logger
%n【日志属性】%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【出错类名】%class
%n【出错函数】%method
%n【出错行号】%L
%n【日志对象】%logger
%n【日志属性】%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

 

出处:https://www.cnblogs.com/henw/archive/2012/11/08/2760780.html

转载于:https://www.cnblogs.com/mq0036/p/10309072.html

  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值