log4net应用
1,配置文件
如果放在Web.config文件中,要放在根节点<configuration>下。
但一般为了方便配置文件的修改,可以将配置文件独立于Web.config,而单独放在一个文本文件(.txt或.config都可以)中。
<?xml version="1.0"?>
<configuration>
<log4net>
<root>
<level value="INFO" />
</root>
<logger name="ProjectA">
<appender-ref ref="ProjectAConfig" />
</logger>
<logger name="ProjectB">
<appender-ref ref="ProjectBConfig" />
</logger>
<logger name="ProjectC">
<appender-ref ref="ProjectCConfig" />
</logger>
<appender name="ProjectAConfig" type="log4net.Appender.FileAppender" >
<param name="File" value="log-file.txt" />
<param name="AppendToFile" value="true" />
<layout type="log4net.Layout.PatternLayout">
<param name="ConversionPattern" value="%d [%t] %-5p %c [%x] \r"/>
</layout>
</appender>
<appender name="ProjectBConfig" type="log4net.Appender.FileAppender" >
<param name="File" value="log-file1.txt" />
<param name="AppendToFile" value="true" />
<layout type="log4net.Layout.PatternLayout">
<param name="ConversionPattern" value="%d [%t] %-5p %c [%x] \r"/>
</layout>
</appender>
<appender name="ProjectCConfig" type="log4net.Appender.RollingFileAppender" >
<param name="File" type="" value="log" />
<param name="AppendToFile" value="true" />
<param name="RollingStyle" value="Date" />
<param name="DatePattern" value="yyyyMMdd" />
<param name="StaticLogFileName" value="false" />
<layout type="log4net.Layout.PatternLayout,log4net">
<param name="ConversionPattern" value="%d [%t] %-5p %c [%x] - %m%n" />
<param name="Header" value="----------------------header--------------------------\r\n" />
<param name="Footer" value="----------------------footer--------------------------\r\n" />
</layout>
</appender>
</log4net>
</configuration>
2,读取配置文件生成ILog对象
a) 首先引入log4net.dll(下载地址:http://logging.apache.org/log4net/)
b) 在项目的AssemblyInfo.cs文件里添加以下的语句:
[assembly:log4net.Config.DOMConfigurator(ConfigFile="filename",Watch=true/false)]
filename的值是配置文件的路径,Watch的值表示是否实时反映配置文件的修改。
或者动态加载
DOMConfigurator.[Configure/ConfigureAndWatch](new FileInfo("filename"));
Configure/ConfigureAndWatch的区别在于是否实时反映配置文件的修改。
在2.0及以后推荐将"DOMConfigurator"改为"XmlConfigurator",但是2.0及以后的Web项目是没 有"AssemblyInfo.cs"文件的,总不能在每个需要使用log4net的类中都加上面那二行代码。针对这种情况,网上也有二种解决办法:(1)新建类库继承log4,用 [assembly]方式加载配置,Web项目再引用类库;(2)在Global文件中动态加载配置。个人认为log4net提供的方法已经够用了,没有必要再去继承,推荐使用第(2)种:
在Global.asax的Application_Start方法中添加如下代码:
System.IO.FileInfo infoF = new System.IO.FileInfo(Server.MapPath("log4net.txt"));
log4net.Config.XmlConfigurator.ConfigureAndWatch(infoF);
3,在项目中使用log4net
添加自定义类
public static class Log4netBase
{
public static void Info(string message, Exception e)
{
log4net.ILog logger = log4net.LogManager.GetLogger("ProjectAConfig");
logger.Info(message, e);
logger.Logger.Repository.Shutdown();
}
}
4,相关问题
生成的log文件无法删除。解决办法:
A) 调用ILog对象的Logger.Repository.Shutdown();
B) 对于web工程,是由于log文件被IIS进程占用,可以关闭IIS以释放IIS对文件的占用;或者直接改变使用log4net的相关代码文件(如果在Global.asax中读取的log4net配置,直接在Global.asax文件中Ctrl+S即可),之后即可删除。我觉得这其实这两种方式都是关闭了一下IIS。
参考:http://kb.cnblogs.com/a/1526841/
log4net应用的更多相关文章
- Log4net - 规则简介
参考页面: http://www.yuanjiaocheng.net/CSharp/csharprumenshili.html http://www.yuanjiaocheng.net/entity/ ...
- Log4net - 项目使用的一个简单Demo
参考页面: http://www.yuanjiaocheng.net/entity/entitytypes.html http://www.yuanjiaocheng.net/entity/entit ...
- log4net使用手册
1. log4net简介 log4net是.Net下一个非常优秀的开源日志记录组件.log4net记录日志的功能非常强大.它可以将日志分不同的等级,以不同的格式,输出到不同的媒介.Java平台下,它还 ...
- Log4Net应用问题
问题 一.日志存储方式 1.txt 2.SQLServer数据库 3.log文件 二.项目类型不同 1winFrom 2webFrom 3MVC 4WPF 5控制台 三.切分依据不同 1.空间大小 2 ...
- 在C#代码中应用Log4Net系列教程(附源代码)
Log4Net应该可以说是DotNet中最流行的开源日志组件了.以前需要苦逼写的日志类,在Log4Net中简单地配置一下就搞定了.没用过Log4Net,真心不知道原来日志组件也可以做得这么灵活,当然这 ...
- Log4net入门(帮助类篇)
在前几篇Log4net入门文件的讲述过程中,我们在使用log4net的类中都要编写如下一行代码: private static log4net.ILog log = log4net.LogManage ...
- Log4net入门(WCF篇)
在上一篇Log4net入门(ASP.NET MVC 5篇)中,我们讲述了如何在ASP.NET MVC 5项目中使用log4net.在这一篇中,我们将讲述如何在WCF应用中使用log4net,为了讲述这 ...
- Log4net入门(ASP.NET MVC 5篇)
在前4篇Log4net入门文章中,我们讲述了log4net的一些简单用法,在这一篇中我们主要讲述如何在ASP.NET MVC 5项目中将日志信息写入SQL Server数据库中. 一.创建最简单的AS ...
- Log4net入门(SQL篇)
我们在Log4net入门(回滚日志篇)中详细讲述了如何将日志信息输出到日志文件中,在这一篇中,我们将讲述如何将日志文件写入SQL Server数据库,以方便我们分析统计日志信息. 首先,我们在SQL ...
- Log4net入门(回滚日志文件篇)
在上一篇Log4net(日志文件篇)中,我们使用"log4net.Appender.FileAppender"将日志信息输出到一个单一的文件中,随着应用程序的持续使用,该日志文件会 ...
随机推荐
- Swift - 生成随机颜色(Extension UIColor)
在开发中,我们有时需要生成一些随机的颜色.但 UIColor 没有提供方法或属性来直接获取随机颜色,这里对其进行扩展,方便使用. 1,扩展UIColor,增加随机颜色属性 1 2 3 4 5 6 7 ...
- 哈,我自己翻译的小书,马上就完成了,是讲用python处理大数据框架hadoop,spark的
花了一些时间, 但感觉很值得. Big Data, MapReduce, Hadoop, and Spark with Python Master Big Data Analytics and Dat ...
- ASP.NET MVC与ASP.NET Web Form简单区别与适用场景
概论: Asp.net 微软 提供web开发框架或者技术.分Web Form和ASP.NET MVC.下面简单说明各自优缺点及使用场景. Web Form 优点: 1.支持丰富的服务器控件.如:Gr ...
- iOS ARC 下的单例模式
#import <Foundation/Foundation.h> @interface RYSingleExample : NSObject<NSCopying> +(ins ...
- redis数据类型之—Sorted set
(1)sorted set 简单介绍 有序集合,在集合类型的基础上为集合中的每个元素都关联了一个分数,这样可以很方便的获得分数最高的N个元素. (2)sorted set 常用命令
- B窗体继承于A窗体,B启动:问题点
uses Windows, Messages, SysUtils, Variants, Classes, Graphics, Controls, Forms, Dialogs, ExtCtrls; t ...
- MyEclipse10的一些问题(git插件,jdk7)
egit: MyEclipse10 要装 egit2.3,版本错了安装不成功; jdk7: 10.5好像是不支持JDK1.7的,换成10.7; JDK1.7中的switch支持String类型的,1. ...
- Working in Singapore
这篇blog主要是想说说最近以及将来一年的时间需要在Singapore工作的感受.你可能以及猜到了,我现在写这篇blog是在Singapore的Office里面. 在一个月之前还在成都工作,每天9:0 ...
- Daikon Forge GUI Library(dfgui)之Event Binding
点击按钮并弹出对话框,就用下面的大问题按钮吧 1,选中按钮,Component/Daikon Forge/Data Binding/Event Binding 2,UI上创建DfPanel,并将其Be ...
- NSNotification\KVO\block\delegate的区别和用法
在开发ios应用的时候,我们会经常遇到一个常见的问题:在不过分耦合的前提下,controllers间怎么进行通信.在IOS应用不断的出现三种模式来实现这种通信: 1.委托delegation: 2.通 ...