文本格式说明

可以记载的日志类别包括: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 的使用的更多相关文章

  1. .NET技术-3.0. 日志插件 log4net

    .NET技术-3.0. 日志插件 log4net 背景:框架 NetFramework3.5 1. 新建控制台程序 2. 程序包管理器控制台中 增加 Nuget包 Install-Package lo ...

  2. 日志插件 log4net 的配置和使用

    文本格式说明 可以记载的日志类别包括:FATAL(致命错误).ERROR(一般错误).WARN(警告).INFO(一般信息).DEBUG(调试信息). 文本参数说明 %m(message):输出的日志 ...

  3. asp.net MVC日志插件Log4Net学习笔记二:保存日志到sqlserver的配置

    1.写到sqlserver的配置: <!--保存到SQLSERVER数据库日志--> <log4net> <appender name="AdoNetAppen ...

  4. asp.net MVC日志插件Log4Net学习笔记一:保存日志到本地

    log4net(Log For Net)是Apache开源的应用于.Net框架的日志记录工具,详细信息参见Apache网站.它是针对Java的log4j(Log For Java的)姊妹工具.用过lo ...

  5. 转:日志插件 log4net 的使用

    文本格式说明 可以记载的日志类别包括:FATAL(致命错误).ERROR(一般错误).WARN(警告).INFO(一般信息).DEBUG(调试信息). 文本参数说明 %m(message):输出的日志 ...

  6. 基于log4net的日志组件扩展封装,实现自动记录交互日志 XYH.Log4Net.Extend(微服务监控)

    背景: 随着公司的项目不断的完善,功能越来越复杂,服务也越来越多(微服务),公司迫切需要对整个系统的每一个程序的运行情况进行监控,并且能够实现对自动记录不同服务间的程序调用的交互日志,以及通一个服务或 ...

  7. 搭建一套自己实用的.net架构(2)【日志模块-log4net】

    先谈谈简单的模块,日志.在系统中日志模块是必须的,什么系统日志,操作日志,调试日志.这里用的是log4net. 对log4net还不熟悉的小伙伴们赶快去搜索基础教程哦, 我这里就不温故了. 那么有人要 ...

  8. c#的日志插件NLog基本使用

    本文介绍c#的日志插件NLog 安装插件 创建logger 日志级别 书写日志信息 配置 包装器 布局 安装插件 直接下载插件包 Install-Package NLog.Config 创建logge ...

  9. [转]Log4Net日志插件配置详解

    log4net是一款优秀的第三方日志框架,可以很容易的加载到开发项目中(引用log4net的dll,再配置些基本参数即可),帮助程序员把日志信息输出到各种不同的目标,常见的有文本.数据库.window ...

随机推荐

  1. JavaScript函数柯里化

    函数式 JavaScript是以函数为一等公民的函数式语言.函数在JavaScript中也是一个对象(继承制Function),函数也可以作为参数传递成函数变量.最近几年函数式也因为其无副作用的特性. ...

  2. [.net 面向对象编程基础] (12) 面向对象三大特性——继承

    [.net 面向对象编程基础] (12) 面向对象三大特性——继承 上节我们说了面向对象的三大特性之一的封装,解决了将对同一对象所能操作的所有信息放在一起,实现统一对外调用,实现了同一对象的复用,降低 ...

  3. 2、CC2541芯片中级教程-OSAL操作系统(进一步了解-OLED && 普通按键和5方向按键-中断!!!)这个系统驱动层和应用层不一样~

    本文根据一周CC2541笔记汇总得来—— 适合概览和知识快速索引—— 全部链接: 中级教程-OSAL操作系统\OSAL操作系统-实验01 OSAL初探 [插入]SourceInsight-工程建立方法 ...

  4. Java-继承,多态练习0922-06

    编写一个Shape类,具有属性:周长和面积: 定义其子类三角形和矩形,分别具有求周长的方法. 定义主类E,在其main方法中创建三角形和矩形类的对象, 并赋给Shape类的对象a.b,使用对象a.b来 ...

  5. 知方可补不足~UPDLOCK更新锁的使用

    回到目录 对于高并发的场合下,使用UPDLOCK可以有效的控制并发更新的问题,即当一个线程在进行with(UPDLOCK)并进行update时,另一个线程将被阻塞,它会等第一个线程更新结束后,才可以进 ...

  6. javascript无缝滚动示例

    效果 图片大小均为200*200; 默认向左循环滚动; 鼠标悬浮暂停,鼠标移走继续滚动; 可以在此基础进行扩展. 下面是代码: <!doctype html> <html lang= ...

  7. [Linux基础]Linux基础知识入门及常见命令.

    前言:最近刚安装了Linux系统, 所以学了一些最基本的操作, 在这里把自己总结的笔记记录在这里. 1,V8:192.168.40.10V1:192.168.40.11Linux ip:192.168 ...

  8. Atitit 异常的实现原理 与用户业务异常

    Atitit 异常的实现原理 与用户业务异常 1.1. 异常的实现原理1 1.2. 用户业务异常1 1.3. 异常转译和异常链2 1.4. 避免异常2 1.5. 异常恢复3 1.6. catch代码块 ...

  9. paip. 提升性能---hibernate的缓存使用 总结

    paip. 提升性能---hibernate的缓存使用 总结 作者Attilax  艾龙,  EMAIL:1466519819@qq.com  来源:attilax的专栏 地址:http://blog ...

  10. js的基本语句和语法

    字符串赋值:把字符串用双引号或单引号引起来,在(js.php)中:二.类型转换;parseint():转整数.parsefloat转小数:强制转换三.运算符表达式1数序运算:加减乘除   %取余:2逻 ...