(24)C#log4net配置和使用
一、下载并引用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=日志输出格式
- 例如,%d - %m%n或%d{yyyy-MM-dd HH:mm:ss} %p [%c] %m%n
- %c 输出日志信息所属的类的全名
- %d 输出日志时间点的日期或时间,默认格式为ISO8601,也可以在其后指定格式,比如:%d{yyy-M-dd HH:mm:ss },输出类似:2002-10-18- 22:10:28
- %f 输出日志信息所属的类的类名
- %l 输出日志事件的发生位置,即输出日志信息的语句处于它所在的类的第几行
- %m 输出代码中指定的信息,如log(message)中的message
- %n 输出一个回车换行符,Windows平台为“rn”,Unix平台为“n”
- %p 输出优先级,即DEBUG,INFO,WARN,ERROR,FATAL。如果是调用debug()输出的,则为DEBUG,依此类推
- %r 输出自应用启动到输出该日志信息所耗费的毫秒数
- %t 输出产生该日志事件的线程名
参考文档:
http://www.cnblogs.com/alipayhutu/archive/2012/06/21/2558249.html
http://www.cnblogs.com/zhangchenliang/p/4546352.html
等
(24)C#log4net配置和使用的更多相关文章
- Log4Net 配置日志按日期和日志级别分类写入
配置效果图: 配置代码: <?xml version="1.0" encoding="utf-8" ?> <log4net> <! ...
- Common.Logging log4net Common.Logging.Log4Net 配置
1.log4net 单独配置 log4net支持多种格式的日志输出,我这里只配置输出到本地的txt文件这种格式. <log4net> <root> <appender-r ...
- Log4Net 配置StmpAppender
目录 Log4Net 配置StmpAppender 1 1.前言 1 2.详细配置 1 1.StmpAppender配置 1 2.Root 配置 2 3.更多选项 ...
- C# Log4Net配置
Log4Net是用来记录日志的,可以将程序运行过程中的信息输出到一些地方(文件.数据库.EventLog等),日志就是程序的黑匣子,可以通过日志查看系统的运行过程,从而发现系统的问题.日志的作用:将运 ...
- Log4net配置与使用简要说明
log4net详细配置:http://logging.apache.org/log4net/本文描述如有错误,以官网的说明为准;p 一:先来看看log4net中的几个概念: 1. log4net继承机 ...
- MVC Log4Net 配置
1.引用log4net.dll 2.在项目根目录下增加log4.config文件 <?xml version="1.0"?> <configuration> ...
- ASP.NET MVC学习之Log4Net配置(日志记录)
Log4Net配置笔记---- 首先,添加对log4net.dll的引用. 在Web.config文件下的Configuration节点下添加Log4Net的配置信息: <!--Log4Net配 ...
- C# 日志系统 log4net 配置及使用
1.引用Dll 版本是:1.2.10.0,下载Dll 2.Web.config文件配置 <?xml version="1.0" encoding="utf-8&qu ...
- JWT+Log4net配置与使用
Log4net的优点 log4net是.Net下一个非常优秀的开源日志记录组件.log4net记录日志的功能非常强大.它可以将日志分不同的等级,以不同的格式,输出到不同的媒介.程序运行过 ...
随机推荐
- 《Cracking the Coding Interview》——第13章:C和C++——题目10
2014-04-25 20:47 题目:分配一个二维数组,尽量减少malloc和free的使用次数,要求能用a[i][j]的方式访问数据. 解法:有篇文章讲了六种new delete二维数组的方式,其 ...
- Python处理Sqlite3数据库
sqlite3比较小众 本章主要通过Python Code表述如何增.查.改.删 sqlite3 DB 一.直接上代码 #!/usr/bin/env python # -*- coding: utf- ...
- 【转载】Unity3d UnityEditor编辑器定制和开发插件
在阅读本教程之前,你需要对Unity的操作流程有一些基础的认识,并且最好了解内置的GUI系统如何使用. 如何让编辑器运行你的代码 Unity3D可以通过事件触发来执行你的编辑器代码,但是我们需要一些编 ...
- 孤荷凌寒自学python第五十天第一次接触NoSql数据库_Firebase
孤荷凌寒自学python第五十天第一次接触NoSql数据库_Firebase (完整学习过程屏幕记录视频地址在文末) 之前对关系型数据库的学习告一段落,虽然能力所限没有能够完全完成理想中的所有数据库操 ...
- Linux网卡驱动程序对ethtool的支持和实现
Linux 的一个显著特点就是其强大的网络功能,Linux 几乎支持所有的网络协议,并在这些协议基础上提供了丰富的应用.对 Linux 网络管理的重要性不言而喻,这些管理依赖于网络工具,比如最常用的 ...
- 软工实践 - 第十六次作业 Alpha 冲刺 (7/10)
队名:起床一起肝活队 组长博客:https://www.cnblogs.com/dawnduck/p/10013959.html 作业博客:班级博客本次作业的链接 组员情况 组员1(队长):白晨曦 过 ...
- kibana的查询语法
kibana的查询语法是 字段Fields:关键词
- oracle基础概念学习笔记
数据库对象: 1.表:表是用来存放用户数据的对象,由行和列组成. 2.约束:保证数据完整性的规则,可以作用在耽搁字段或者多个字段组合上,用来约束这些字段上的数据必须符合作用于之上的规则. 3.视图:通 ...
- PHP 自制分页类
思路: 通过给页面url传递get参数,来控制每页的sql查询(mysql关键词:limit),实现分页查询 代码: class getpage{ public $pagenum; public $p ...
- NAT64与DNS64基本原理概述
NAT64与DNS64基本原理概述 1.NAT64与DNS64背景 在IPv6网络的发展过程中,面临最大的问题应该是IPv6与IPv4的不兼容性,因此无法实现二种不兼容网络之间的互访.为了实现 ...