log4net解决的问题是在.Net下提供一个记录日志的框架,它提供了向多种目标写入的实现,比如利用log4net可以方便地将日志信息记录到文件、控制台、Windows事件日志和数据库(包括MS SQL Server, Access,Oracle9i,Oracle8i,DB2,SQLite)中。
log4net主页:http://logging.apache.org/log4net/
log4net配置:
1、下载log4net.dll,在项目中添加该引用。
2、在项目AssemblyInfo.cs中添加:
[assembly: log4net.Config.XmlConfigurator(ConfigFileExtension = "config", Watch = true)]
3、对App.config文件进行配置,如果没有App.config文件,可以通过在解决方案中,添加新建项→应用程序配置文件,进行添加。
下面是个人比较喜欢的两种配置,一种以日期的形式记录,每天的日志都写入到一个文件中,按日期可以方便查看日志。
另一种是以文件大小来记录,如果超过了大小就重新生成一个文件,最多为maxSizeRollBackups个,超过maxSizeRollBackups个则会轮训覆盖。
level定义记录的日志级别,定义记录哪个级别以上的日志,级别由高往低依次是:None > Fatal > ERROR > WARN > DEBUG > INFO >ALL
<?xml version="1.0"?>
<configuration>
<configSections>
<section name="log4net" type="log4net.Config.Log4NetConfigurationSectionHandler,log4net"/>
</configSections>
<log4net>
<root>
<level value="ALL"/> <!---日志级别-->
<appender-ref ref="RollingLogFileAppender"/>
</root>
<!-- name属性指定其名称,type则是log4net.Appender命名空间的一个类的名称,意思是指定使用哪种介质-->
<appender name="RollingLogFileAppender" type="log4net.Appender.RollingFileAppender">
<file value="Log\\"/><!-- 输出到什么目录-->
<appendToFile value="true"/><!-- 是否到附加到文件中-->
<rollingStyle value="Date"/><!-- 文件创建方式,以日期的方式记录-->
<datePattern value="yyyy-MM-dd".txt""/><!-- 文件格式-->
<staticLogFileName value="false"/><!--否采用静态文件名,文件名是否唯一-->
<layout type="log4net.Layout.PatternLayout"> <!---日志内容布局-->
<param name="ConversionPattern" value="%date [%thread] (%file:%line) %-5level %logger [%property{NDC}] - %message%newline"/>
</layout>
</appender> <!---另一种Appender-->
<appender name="DateFileInfoAppender" type="log4net.Appender.RollingFileAppender">
<file value="Log\\log.txt"/> <!-- 输出到什么文件-->
<appendToFile value="true"/> <!-- 是否到附加到文件中-->
<rollingStyle value="Size" />
<maxSizeRollBackups value="10"/> <!--日志文件的最大个数-->
<maximumFileSize value="10MB"/> <!-- 单个日志文件最大的大小-->
<staticLogFileName value="true"/> <!--否采用静态文件名,文件名是否唯一-->
<layout type="log4net.Layout.PatternLayout"> <!---日志内容布局-->
<param name="ConversionPattern" value="%date [%thread] (%file:%line) %-5level %logger [%property{NDC}] - %message%newline"/>
</layout>
</appender>
</log4net> <startup>
<supportedRuntime version="v4.0" sku=".NETFramework,Version=v4.0"/>
</startup>
</configuration>
log4net的配置官方主页:http://logging.apache.org/log4net/release/config-examples.html
4、log4net的使用:
using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using log4net; namespace ConfigTest
{
public static class TestClass
{
private static readonly ILog log = LogManager.GetLogger(typeof(TestClass)); public static void TestLog()
{
for (int i = ; i < ; ++i)
{
log.Info(string.Format("Log info {0}",i));
log.Debug(string.Format("Log debug {0}", i));
}
}
} class Program
{
static void Main(string[] args)
{
try
{
TestClass.TestLog();
}
catch (Exception ex)
{
Console.WriteLine(ex.Message);
}
}
}
}
参考:
http://zhoufoxcn.blog.51cto.com/792419/429988/
log4net的配置与使用的更多相关文章
-
LOG4NET日志配置及使用
Log4net的安装 Install-Package log4net 1.先弄个日志记录的类 /// <summary> /// 使用LOG4NET记录日志的功能,在WEB.CONFIG里 ...
-
将Log4net的配置配置到的独立文件中
本文转载:http://blog.csdn.net/wanzhuan2010/article/details/7587780 另外一篇博客:http://grim1980.blog.sohu.com/ ...
-
Log4Net 日志配置[附带源码]
前述 园子里有许多人对log4net这款开源的日志记录控件有很多介绍.在这里个人再做一次总结,希望对以后有所帮助,需要的时候可以直接使用,减少查阅资料的时间.利用log4net可以方便地将日志信息记录 ...
-
Log4Net详细配置
关于Log4Net配置主要分几步 第一步:下载log4net.dll(log4net官网:http://logging.apache.org/log4net/download_log4net.cgi) ...
-
日志管理-将Log4net的配置配置到的独立文件中
转自:http://www.cnblogs.com/zfanlong1314/p/3662679.html使用log4net已经很久了.但从来没有详情了解log4的参数,及具体使用方法.看了周公的博客 ...
-
Log4net快速配置使用指南。(快速搭建log4net日志平台手册)
每做一个新项目,都会用到log4net,但总是忘记如何快速配置.有时在网上搜半天也找不到好的模板,大都在介绍参数的使用,在此做下总结,争取下次用时仅10分钟就可搭建好log4net. 直接上介绍的步骤 ...
-
C# log4net 的配置
项目的日志组件是必备可少的,任何项目中都需要.这样既方便前期的开发测试也方便项目后期的项目维护.C#项目的一个不错的日志组件是log4net,下面我就把桌面应用程序.控制台程序.网站中log4net的 ...
-
log4net 日志配置及使用
一.log4net按照不同的[LEVEL]级别输出到不同文件 <log4net> <!--错误日志:::记录错误日志--> <!--按日期分割日志文件 一天一个--> ...
-
log4net类库配置、WebService配置
一.类库配置 结构如下图 1.LogUtility类 public class LogUtility { private static readonly log4net.ILog log = log4 ...
随机推荐
-
Deffered.js的实现原理
在艾伦的推荐下,看了一个日本人写的延时加载库,非常轻量,写的很棒.作为我的源码学习的第一编. 在认真看了两天之后,才看懂它的实现原理,我下面把通自己的理解,进行了精简.只程现原理,方便日后的回顾.&l ...
-
android里R.layout.的问题
今天,在Exlipse里的一个项目在.java文件里写 setContentView(R.layout.activity_problem);时,显示错误,以为是R.java文件里没有对应的activ ...
-
vim基本使用
i 进入插入状态 esc 退出插入状态 x 删除一个字符 dd 删除一行,并拷贝 yy 拷贝 p 粘贴 u 撤销 ctrl+r 重做 :w 保存 :q 退出 :q! → 退出不保存
-
解决Ubuntu系统的每次开机重启后,resolv.conf清空的问题
问题情况描述如下: 普及知识: /etc/resolv.conf ,其实是一个Link .它其实指向的是 /run/resolvconf/resolv.conf. Ubuntu 有一个 reso ...
-
各种编码之间的关系以及getBytes的使用
编码基础知识参考http://my.oschina.net/chape/blog/201725 我对此作了简单的概括 iso8859-1 (通常叫做Latin-1) 属于单字节编码,最多能表示的字符范 ...
-
String类的indexOf方法的用法和举例
2017年3月3号博主第一次去郑州互联网公司面试,背景是这样的我先前去了农大龙子湖校园招聘投简历,然后第二天去面试了那经历可以说是很失败的一次面试,当然这跟自己的水平有关了接下来重点讲一下面试的题目: ...
-
RobotFramework-RIDE环境搭建一:关于Python2和Python3的共存使用
最近在搭建Robot Framework自动化测试框架,由于Robot Framework 框架是基于Pytho语言开发的,要想使用Robot Framework 首先需要有Python环境. RID ...
-
Windows Server 2008 R2 服务器系统安装图文教程
https://www.jb51.net/os/535658.html http://www.machenike.com/article.php?id=207
-
DS18B20读数错误排除
描述: 同时测试了好几个板子,都接了DS18B20传感器.但,有的板子读取的DS18B20温度值正确,有的读取错误. 原因查找: 以为是有的传感器坏了,但测试后发现并不是. 又以为是DS18B20需要 ...
-
记录Git的安装过程
从https://git-scm.com/download/win,选择Windos版本下载. 选择打开的工具,用的Notepad. 下一步 下一步