一、下载并引用log4

DLL下载  http://logging.apache.org/

 找到.net版本的

点击下载

找到编译好的bin

选择net

选择你项目对应的.net framework版本

里面的DLL就是我们要用的文件,

把他引用到项目中

引入命名空间

二、配置APPconfig

1、创建APPconfig

配置APPconfig

在工程名上右键-添加-新建项,找到应用程序配置文件,默认名App.config

创建成功后默认代码如下,所有的配置都要写在<configuration></configuration>之间

<?xml version="1.0" encoding="utf-8" ?>
<configuration> </configuration>

2、<log4net></log4net>里有五个子元素

<?xml version="1.0" encoding="utf-8" ?>
<configuration>
<log4net> <root></root>
<logger></logger>
<appender></appender>
<layout></layout>
<param></param> </log4net>
</configuration>

 三、控制台输出日志

1、新建并配置APP.config

<?xml version="1.0" encoding="utf-8" ?>
<configuration>
<configSections>
<section name="log4net" type="log4net.Config.Log4NetConfigurationSectionHandler, log4net"/>
</configSections>
<log4net>
<root>
<level value="ALL" />
<appender-ref ref="ConsoleAppender" />
</root>
<appender name="ConsoleAppender" type="log4net.Appender.ConsoleAppender">
<layout type="log4net.Layout.PatternLayout">
</layout>
</appender>
</log4net>
</configuration>

2、

默认的APP.config编译后文件是和bin文件夹在同一级的

选中APP.config右键属性-把复制到输出目录设置为始终复制,这样就拷贝了一份config文件到bin里

3、关联APP.config文件

打开工程Properties文件夹下的AssemblyInfo.cs 加入代码

[assembly: log4net.Config.XmlConfigurator(ConfigFile = "App.config", Watch = true)]

如果控制台不输出日志,去掉configFile

[assembly: log4net.Config.XmlConfigurator(Watch = true)]

4、控制台代码

using System;
using System.Collections.Generic;
using System.Text;
using log4net; namespace log4
{
class Program
{
static void Main(string[] args)
{
ILog log = LogManager.GetLogger("ConsoleAppender");
log.Info("测试");
Console.ReadKey();
}
}
}

四、文件输出日志

<?xml version="1.0" encoding="utf-8" ?>
<configuration>
<configSections>
<section name="log4net" type="log4net.Config.Log4NetConfigurationSectionHandler, log4net"/>
</configSections>
<log4net>
<appender name="FileAppender" type="log4net.Appender.FileAppender">
<file value="Log.log" />
<Layout type="log4net.Layout.PatternLayout">
</Layout>
</appender>
<root>
<level value="ALL" />
<appender-ref ref="FileAppender" />
</root>
</log4net>
</configuration>

运行三次

五、数据库记录日志

六、记录多个日志文件

<?xml version="1.0" encoding="utf-8" ?>
<configuration>
<configSections>
<section name="log4net" type="log4net.Config.Log4NetConfigurationSectionHandler, log4net" />
</configSections>
<log4net> <logger name="Logging">
<level value="ALL"/>
<appender-ref ref="RollingFileAppender_INFO"/>
<appender-ref ref="RollingFileAppender_WARN"/>
</logger> <!--记录INFO方法的日志-->
<appender name="RollingFileAppender_INFO" type="log4net.Appender.RollingFileAppender">
<file value="./Log/INFO." />
<appendToFile value="true" />
<rollingStyle value="Composite" />
<datePattern value="yyyyMMdd" />
<Encoding value="UTF-8" />
<param name="maximumFileSize" value="80MB" />
<maxSizeRollBackups value="" />
<layout type="log4net.Layout.PatternLayout">
<param name="ConversionPattern" value="[%d] - %m%n" />
</layout>
<filter type="log4net.Filter.LevelRangeFilter">
<param name="LevelMin" value="INFO" />
<param name="LevelMax" value="INFO" />
</filter>
</appender> <!--记录WARN方法的日志-->
<appender name="RollingFileAppender_WARN" type="log4net.Appender.RollingFileAppender">
<file value="./Log/WARN." />
<appendToFile value="true" />
<rollingStyle value="Composite" />
<datePattern value="yyyyMMdd" />
<Encoding value="UTF-8" />
<param name="maximumFileSize" value="80MB" />
<maxSizeRollBackups value="" />
<layout type="log4net.Layout.PatternLayout">
<param name="ConversionPattern" value="[%d] - %m%n" />
</layout>
<filter type="log4net.Filter.LevelRangeFilter">
<param name="LevelMin" value="WARN" />
<param name="LevelMax" value="WARN" />
</filter>
</appender>
</log4net>
</configuration>
            ILog log = LogManager.GetLogger("Logging");
log.Info("测试1");
log.Warn("测试2");
Console.ReadKey();

七、log4j.appender.appender1.layout.ConversionPattern=日志输出格式

  1. 例如,%d - %m%n或%d{yyyy-MM-dd HH:mm:ss} %p [%c] %m%n
  2. %c 输出日志信息所属的类的全名
  3. %d 输出日志时间点的日期或时间,默认格式为ISO8601,也可以在其后指定格式,比如:%d{yyy-M-dd HH:mm:ss },输出类似:2002-10-18- 22:10:28
  4. %f 输出日志信息所属的类的类名
  5. %l 输出日志事件的发生位置,即输出日志信息的语句处于它所在的类的第几行
  6. %m 输出代码中指定的信息,如log(message)中的message
  7. %n 输出一个回车换行符,Windows平台为“rn”,Unix平台为“n”
  8. %p 输出优先级,即DEBUG,INFO,WARN,ERROR,FATAL。如果是调用debug()输出的,则为DEBUG,依此类推
  9. %r 输出自应用启动到输出该日志信息所耗费的毫秒数
  10. %t 输出产生该日志事件的线程名

参考文档:

http://www.cnblogs.com/alipayhutu/archive/2012/06/21/2558249.html

http://www.cnblogs.com/zhangchenliang/p/4546352.html

(24)C#log4net配置和使用的更多相关文章

  1. Log4Net 配置日志按日期和日志级别分类写入

    配置效果图: 配置代码: <?xml version="1.0" encoding="utf-8" ?> <log4net> <! ...

  2. Common.Logging log4net Common.Logging.Log4Net 配置

    1.log4net 单独配置 log4net支持多种格式的日志输出,我这里只配置输出到本地的txt文件这种格式. <log4net> <root> <appender-r ...

  3. Log4Net 配置StmpAppender

    目录 Log4Net 配置StmpAppender    1 1.前言    1 2.详细配置    1 1.StmpAppender配置    1 2.Root 配置    2 3.更多选项     ...

  4. C# Log4Net配置

    Log4Net是用来记录日志的,可以将程序运行过程中的信息输出到一些地方(文件.数据库.EventLog等),日志就是程序的黑匣子,可以通过日志查看系统的运行过程,从而发现系统的问题.日志的作用:将运 ...

  5. Log4net配置与使用简要说明

    log4net详细配置:http://logging.apache.org/log4net/本文描述如有错误,以官网的说明为准;p 一:先来看看log4net中的几个概念: 1. log4net继承机 ...

  6. MVC Log4Net 配置

    1.引用log4net.dll 2.在项目根目录下增加log4.config文件 <?xml version="1.0"?> <configuration> ...

  7. ASP.NET MVC学习之Log4Net配置(日志记录)

    Log4Net配置笔记---- 首先,添加对log4net.dll的引用. 在Web.config文件下的Configuration节点下添加Log4Net的配置信息: <!--Log4Net配 ...

  8. C# 日志系统 log4net 配置及使用

    1.引用Dll 版本是:1.2.10.0,下载Dll 2.Web.config文件配置 <?xml version="1.0" encoding="utf-8&qu ...

  9. JWT+Log4net配置与使用

    Log4net的优点        log4net是.Net下一个非常优秀的开源日志记录组件.log4net记录日志的功能非常强大.它可以将日志分不同的等级,以不同的格式,输出到不同的媒介.程序运行过 ...

随机推荐

  1. 《Cracking the Coding Interview》——第13章:C和C++——题目10

    2014-04-25 20:47 题目:分配一个二维数组,尽量减少malloc和free的使用次数,要求能用a[i][j]的方式访问数据. 解法:有篇文章讲了六种new delete二维数组的方式,其 ...

  2. Python处理Sqlite3数据库

    sqlite3比较小众 本章主要通过Python Code表述如何增.查.改.删 sqlite3 DB 一.直接上代码 #!/usr/bin/env python # -*- coding: utf- ...

  3. 【转载】Unity3d UnityEditor编辑器定制和开发插件

    在阅读本教程之前,你需要对Unity的操作流程有一些基础的认识,并且最好了解内置的GUI系统如何使用. 如何让编辑器运行你的代码 Unity3D可以通过事件触发来执行你的编辑器代码,但是我们需要一些编 ...

  4. 孤荷凌寒自学python第五十天第一次接触NoSql数据库_Firebase

    孤荷凌寒自学python第五十天第一次接触NoSql数据库_Firebase (完整学习过程屏幕记录视频地址在文末) 之前对关系型数据库的学习告一段落,虽然能力所限没有能够完全完成理想中的所有数据库操 ...

  5. Linux网卡驱动程序对ethtool的支持和实现

    Linux 的一个显著特点就是其强大的网络功能,Linux 几乎支持所有的网络协议,并在这些协议基础上提供了丰富的应用.对 Linux 网络管理的重要性不言而喻,这些管理依赖于网络工具,比如最常用的 ...

  6. 软工实践 - 第十六次作业 Alpha 冲刺 (7/10)

    队名:起床一起肝活队 组长博客:https://www.cnblogs.com/dawnduck/p/10013959.html 作业博客:班级博客本次作业的链接 组员情况 组员1(队长):白晨曦 过 ...

  7. kibana的查询语法

    kibana的查询语法是    字段Fields:关键词

  8. oracle基础概念学习笔记

    数据库对象: 1.表:表是用来存放用户数据的对象,由行和列组成. 2.约束:保证数据完整性的规则,可以作用在耽搁字段或者多个字段组合上,用来约束这些字段上的数据必须符合作用于之上的规则. 3.视图:通 ...

  9. PHP 自制分页类

    思路: 通过给页面url传递get参数,来控制每页的sql查询(mysql关键词:limit),实现分页查询 代码: class getpage{ public $pagenum; public $p ...

  10. NAT64与DNS64基本原理概述

    NAT64与DNS64基本原理概述 1.NAT64与DNS64背景     在IPv6网络的发展过程中,面临最大的问题应该是IPv6与IPv4的不兼容性,因此无法实现二种不兼容网络之间的互访.为了实现 ...