log4net 使用指南,最常遇到的问题整理。。。
一、 Log4net特征
Log4net是一个用于.NET开发环境的日志记录组件,由于它的超快及超灵活,很多大型的应用都会用到。
它有如下特点:
1.自定义日志输出级别
Log4net将日志分为五个级别优先级从高到低依次:FATAL > ERROR > WARN > INFO > DEBUG,此外还有ALL(允许所有的日志请求)和OFF(拒绝所有的日志请求)这两种特殊的级别。可以通过日志级别来控制日志是否输出。如果你配置文件中定义的是INFO级别,程序中有三种日志记录方式
Log.Info(“日志内容”),Log.Warn(“日志内容”),Log.Debug(“日志内容”)
则Log.Info,Log.Debug都会输出日志,Log.Warn不会输出日志。
2.自定义日志输出方式
Log4net的日志输出方式很灵活,可以将日志输出至文本文件,控制台,邮件,Windows Event Log,数据库等等。
对于写日志至文本文件还可以有如下非常灵活的配置。
a.按时间段打印日志,按月,按日 ,按时,按分等随你配置
b.按文件的大小 打印滚动日志,如每10M,100M一个日志文件,这样可以防止日志文件不至于过大,日志文件达到4,5G日后我们基本上就很难打开了。
c.指定日志大小,比如说指定500M,那么日志将只有一个且不会超出500M。
3.性能超快
Log4net的日志记录性能是采用stringwriter记录日志方式的4倍左右。
二、 Log4net在项目中应用
1.在log4net的官网http://logging.apache.org/log4net/下载一个log4net.dll,然后在项目中添加引用。
2.配置
a.log4net的配置有两种,一种是独立到单独的一个配置文件中,另一种是嵌入程序本身的配置文件中(如web项目的web.config,winform的appsetting中),但这两种的配置都差不多。
b.配置步骤,在配置文件中的<configSections>节点下加入如下一行
<section name="log4net" type="log4net.Config.Log4NetConfigurationSectionHandler, log4net" />
c.在<configSections>节点下加入真正用来干活的配置。
比如说:
<log4net debug="false">
<appender name="My Appender " type="log4net.Appender.RollingFileAppender">
<file value="D:\Vehpro\MyLogger.log" />
<appendToFile value="true" />
<rollingStyle value="Date" />
<datePattern value="yyyyMMdd".log"" />
<layout type="log4net.Layout.PatternLayout">
<param name="ConversionPattern" value="%d [%t] %-5p %c %m%n" />
</layout>
</appender>
<logger name="MyLogger" additivity="false">
<level value="ALL"/>
<appender-ref ref=" My Appender "/>
</logger>
<root>
<level value="ALL" />
<appender-ref ref=" My Appender "/>
</root>
</log4net>
在这段配置中定义了两个logger一个是root,另一个是MyLogger.它们都是通过appender-ref指定的My Appender介质来输出日志。
d.激活log4net
对于web工程,如果独立在一个配置文件中,假定配置文件名为log4net.config.xml
则在Global.asax的Application_Start加入如下两行
System.IO.FileInfo file = new System.IO.FileInfo(Server.MapPath("~\\log4net.config.xml"));
log4net.Config.XmlConfigurator.ConfigureAndWatch(file);
如果配置在web.config中则将代码换成log4net.Config.XmlConfigurator.Configure();
对于应用程序,winform,windows服务等则可以在AssemblyInfo中加入
[assembly: log4net.Config.XmlConfigurator(Watch = true)]即可。
3.上战场
在类中加入一个字段log如下
private static log4net.ILog log = log4net.LogManager.GetLogger("MyLogger ");
GetLogger方法体中的参数MyLogger就是配置文件中定义的logger name,这行代码的意思就是我要采用Mylogger的配置进行日志记录。
接下来变可以在代码中调用log的方法输出日志了。
第一篇博客,发现写一点点文字还真不是个轻松的事。想写好还是没写得好,想写清没写得清呵呵,欢迎拍砖....
log4net 使用指南,最常遇到的问题整理。。。的更多相关文章
- Log4net使用指南
请在这里下载示例代码 1 简介 1.1 Log4net的优点: 几乎所有的大型应用都会有自己的用于跟踪调试的API.因为一旦程序被部署以后,就不太可能再利用专门的 ...
- [转]log4net 使用指南
声明:本文内容主要译自Nauman Leghari的Using log4net,亦加入了个人的一点心得(节3.1.4). 请在这里下载示例代码 1 简介 1.1 ...
- Log4Net使用指南(转)
转自:http://www.cnblogs.com/dragon/archive/2005/03/24/124254.html 声明:本文内容主要译自Nauman Leghari的Using log4 ...
- C# Log4Net使用指南(转)
1 简介 1.1 Log4net的优点: 几乎所有的大型应用都会有自己的用于跟踪调试的API.因为一旦程序被部署以后,就不太可能再利用专门的调试工具了.然而一个管 ...
- Log4Net使用指南之用log4net记录日志到数据库(含有自定义属性)------附Demo例子源代码
Log4NET简介 log4net库是Apache log4j框架在Microsoft .NET平台的实现,是一个帮助程序员将日志信息输出到各种目标(控制台.文件.数据库等)的工具. 前提 最近做项目 ...
- log4net菜鸟指南二----生成access和txt
前言 有可能目标计算机缺少某些组件,导致无法生成access文件,或者打不开文件,这时txt文件就可以方便的使用了 一,标准的控制台程序输出日志到access <?xml version=&qu ...
- log4net菜鸟指南
log4net的作用 提供一个记录日志的框架,可以将日志信息记录到文件(txt.xml等).控制台.Windows事件日志和数据库(MSSQL.Acess.Oracle.DB2和SQLite等). 要 ...
- JS搞基指南----延迟对象入门提高资料整理
JavaScript的Deferred是比较高大上的东西, 主要的应用还是主ajax的应用, 因为JS和nodeJS这几年的普及, 前端的代码越来越多, 各种回调套回调再套回调实在太让人崩溃, ...
- git完全cli指南之详细思维导图整理分享
一直以来都觉得 在开发过程中 能用命令行的还是用命令行 能用快捷键的就要快捷键 前期可能要点学习成本 但是熟练后带来的好处还是非常可观的 所以一直坚持使用命令行的方式来使用git 基本上每个操作都能心 ...
随机推荐
- ubuntu18.04系统安装+基本环境配置【原创】
平台信息:PC:ubuntu18.04.i5.七彩虹GTX1060显卡.固态硬盘.机械硬盘 作者:庄泽彬(欢迎转载,请注明作者) 说明:在原本的电脑买一个独立显卡,装上去之后,出了各种问题,虽然后面勉 ...
- 一个简单的Python字符串处理文件
#!/usr/bin/env python3 import re def lineprocess(line): res = '' index = 47 if line[index] == 'e': i ...
- UVa 10294 项链和手镯(polya)
https://vjudge.net/problem/UVA-10294 题意: 手镯可以翻转,但项链不可以.输入n和t,输出用t种颜色的n颗珠子能制作成的项链和手镯的个数. 思路: 经典等价类计数问 ...
- QWebEngine_C++_交互
参考网址:http://blog.csdn.net/liuyez123/article/details/50509788 ZC: 该文章里面的: “ <ahref="javascrip ...
- 大数据时代,IT行业竟有如此多高薪职位!
近年来云计算.大数据.BYOD.社交媒体.3D打印机.物联网……在互联网时代,各种新词层出不穷,令人应接不暇.这些新的技术.新兴应用和对应的IT发展趋势,使得IT人必须了解甚至掌握最新的IT技能. 另 ...
- How to have matlab tic toc in C++?
Reprinted form: https://stackoverflow.com/questions/13485266/how-to-have-matlab-tic-toc-in-c/1348558 ...
- 手写DCGAN
//加上了注释,对pytorch又加深了理解import torch as t from torch import nn from torch.autograd import Variable fro ...
- [转载]字符串匹配的Boyer-Moore算法
作者: 阮一峰 日期: 2013年5月 3日 上一篇文章,我介绍了KMP算法. 但是,它并不是效率最高的算法,实际采用并不多.各种文本编辑器的"查找"功能(Ctrl+F),大多采用 ...
- python自动化运维之路03
set集合 集合是一个无序的.不可重复的集合.主要作用有: 1.去重,把一个列表变成集合,就等于去重了. 2.关系测试,测试两组数据之前的交集.差集.并集等关系 常用操作 创建.交集.并集.差集.对称 ...
- c++ o2 优化
有时候,写代码的时候要卡常 这时候就要用到o2优化 #pragma GCC optimize(2) 只要把这句话加在程序开头,就可以手动开o2优化了