vs2010 中使用 log4net

*******************************************************************************
vs2010 中使用 log4net
环境:vs2010+framework4.0+log4net(1.2.10.0\framework 2.0)
参考:http://www.cnblogs.com/llhhll/archive/2011/03/01/1967741.html
http://blog.csdn.net/lyjcn/article/details/4432833
http://blog.csdn.net/maths_bai/article/details/6074125
http://hi.baidu.com/zonecens/blog/item/506d805184b0fc878d54306a.html
*******************************************************************************

1.在项目中加入对 log4net 的引用

2.编译项目,如果已经加入了log4net 的引用
但是编译时还出请添加对“log4net 的引用”的提示,
这时你需要修改当前项目的“目标框架”版本,先将
目标框架版本选择成“.NET Framework 2.0” ,然后
再编译,等编译成功了,你再将“目标框架”版本修改
为 4.0 就好了。(原因吗,我也不知道为什么!哈哈)

3.添加 log4net 以指定配置文件初始化实例
[assembly: log4net.Config.XmlConfigurator(ConfigFile = "log4net.config", Watch = true)]
你可以在两个地方写这行代码(我测试用的是 winform 程序)
3.1 应用程序入口点,也就是 Main 函数所在的类(Program.cs),在那个类的命名空间上一行添加
3.2 在 Properties/AssemblyInfo.cs 最后一行添加

4.修改应用程序配置文件 app.config 或者 web.config
在 <configuration> 标签的下一行添加以下的标签及内容
<configSections>
<section name="log4net" type="log4net.Config.Log4NetConfigurationSectionHandler, log4net-net-2.10"/>
</configSections>

5.添加配置文件,看看第三步骤我们写的那行代码了吧
5.1 其中的 ConfigFile = "log4net.config"
其实就是自定义了一个配置文件,如果不写的话你要将 log4net 的那些配置写在 app.config 中,
这样我觉得比较乱。
5.2 其中的 Watch = true
就是让 log4net 自动的去监视 log4net.config 文件的改动,如果内容有改动你也不用重新启动
应用程序 log4net 就会自动按照新配置去执行了。
5.3 添加 log4net 配置文件
右键项目/添加/添加新项,选择 “应用程序配置文件”,将其命名为 log4net.config,点击【添加】
注意:右键新建的 log4net.config 文件点击【属性】,在属性窗口中将‘复制到输出目录’改为‘如果较新则复制’
或者你可以手动将 log4net.config 文件复制到你应用程序输出目录。如果不这样做 log4net 组件是找不到
配置文件的,但是它本身不会报错就是不会出现日志信息(够你郁闷一会儿的了)。

一下是 log4net 的配置,可以直接使用

----------------------------------------log4net.config 内容开始---------------------------------------------------

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

<root>
<level value="ALL"/>
<appender-ref ref="RollingLogFileAppender"/>
</root>

<appender name="RollingLogFileAppender" type="log4net.Appender.RollingFileAppender">
<!-- 将日志生成在应用程序根目录的 ExceptionLogFiles 文件夹中,文件以当前日志命名 -->
<param name="File" value="ExceptionLogFiles/"/>
<param name="Encoding" value="GB2312" />
<param name="AppendToFile" value="true"/>
<param name="RollingStyle" value="Date" />
<param name="DatePattern" value="yyyyMMdd" />
<param name="MaximumFileSize" value="2KB"/>
<param name="MaxSizeRollBackups" value="10"/>
<param name="StaticLogFileName" value="false"/>
<param name="DatePattern" value="yyyyMMdd&quot;.log&quot;"/>
<param name="RollingStyle" value="Composite"/>

<layout type="log4net.Layout.PatternLayout">
<param name="ConversionPattern" value="异常时间:%date{yy-MM-dd HH:mm:ss,fff} %n线程编号:%t %n异常信息:%exception所在文件:%F%n所在行号:%L%n其它信息:%m%n********************************************%n"/>
</layout>

<filter type="log4net.Filter.LevelRangeFilter">
</filter>

</appender>

<appender name="ConsoleAppender" type="log4net.Appender.ConsoleAppender">
<layout type="log4net.Layout.PatternLayout">
<param name="ConversionPattern" value="异常时间:%date{yy-MM-dd HH:mm:ss,fff} %n线程编号:%t %n异常信息:%exception所在文件:%F%n所在行号:%L%n其它信息:%m%n********************************************%n"/>
</layout>
</appender>

<appender name="SmtpAppender" type="log4net.Appender.SmtpAppender">
<to value="dongxiaoning@tiantian.com"></to>
<from value=">
<subject value="Test Log Message"/>
<smtpHost value="email.tiantian.com"/>
<username value="dongxiaoning"/>
<password value="123456"/>
<bufferSize value="2048"/>
<!--超长部分是否丢弃-->
<lossy value="false"/>
<!--输出级别在WARN和OFF之间的日志-->
<filter type="log4net.Filter.LevelRangeFilter">
<param name="LevelMin" value="WARN"/>
<param name="LevelMax" value="OFF"/>
</filter>

<layout type="log4net.Layout.PatternLayout">
<conversionPattern value="异常时间:%date{yy-MM-dd HH:mm:ss,fff} %n线程编号:%t %n异常信息:%exception所在文件:%F%n所在行号:%L%n其它信息:%m%n********************************************%n"/>
</layout>
</appender>

<appender name="ADONetAppender" type="log4net.Appender.AdoNetAppender">
<!--<bufferSize value="10" />-->
<connectionType value="System.Data.SqlClient.SqlConnection, System.Data, Version=1.0.3300.0, Culture=neutral, PublicKeyToken=b77a5c561934e089"/>
<connectionString value="Server=localhost;UID=sa;PWD=123456;DataBase=log;Max Pool Size=1000"/>
<commandText value="INSERT INTO Log ([Date],[Thread],[Level],[Logger],[Message]) VALUES (@log_date, @thread, @log_level, @logger, @message)"/>
<parameter>
<parameterName value="@log_date"/>
<dbType value="DateTime"/>
<!--
<layout type="log4net.Layout.PatternLayout">
<conversionPattern value="%date{yyyy'-'MM'-'dd HH':'mm':'ss'.'fff}" />
</layout>
-->
<layout type="log4net.Layout.RawTimeStampLayout"/>
</parameter>
<parameter>
<parameterName value="@thread"/>
<dbType value="String"/>
<size value="255"/>
<layout type="log4net.Layout.PatternLayout">
<conversionPattern value="%t"/>
</layout>
</parameter>
<parameter>
<parameterName value="@log_level"/>
<dbType value="String"/>
<size value="50"/>
<layout type="log4net.Layout.PatternLayout">
<conversionPattern value="%p"/>
</layout>
</parameter>
<parameter>
<parameterName value="@logger"/>
<dbType value="String"/>
<size value="255"/>
<layout type="log4net.Layout.PatternLayout">
<conversionPattern value="%c"/>
</layout>
</parameter>
<parameter>
<parameterName value="@message"/>
<dbType value="String"/>
<size value="4000"/>
<layout type="log4net.Layout.PatternLayout">
<conversionPattern value="%m"/>
</layout>
</parameter>
</appender>

</log4net>

----------------------------------------log4net.config 内容结束---------------------------------------------------

6.代码中的写法
log4net.ILog log = log4net.LogManager.GetLogger(System.Reflection.MethodBase.GetCurrentMethod().DeclaringType);
log.Fatal("log.Fatal", new Exception("log.Fatal"));
log.Error("log.Error", new Exception("log.Error"));
log.Warn("log.Warn", new Exception("log.Warn"));
log.Info("log.Info", new Exception("log.Info"));
log.Debug("log.Debug", new Exception("log.Debug"));

7.生成的日志效果如下

********************************************
异常时间:11-08-28 18:34:13,203
线程编号:4412
异常信息:System.Exception: 测试异常
所在文件:D:\WorkTemp\TestSpace\Log4net\TestApp\Log4NetTest\Log4NetTest\Form1.cs
所在行号:38
其它信息:第一个参数
********************************************

8.总结
这里也就不说那些乱七八糟的配置节都是什么意思了,我的目的只有一个“让log4net 能再在vs2010环境中正常使用”
能用了之后你再去深究那些配置,配出你所需要的效果就OK了。
这里只有将日志信息“写入文本文件”经过测试,其它的有待研究,有更好的希望大家分享一下!

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
在C#使用log4net进行日志记录,你需要进行以下配置步骤: 1. 添加log4net引用:首先,确保你的项目已经添加了log4net的引用。你可以通过NuGet包管理器来添加log4net引用,或者手动下载log4net库并将其添加到项目。 2. 创建log4net配置文件:在项目创建一个名为log4net.config(或者任何你喜欢的名称)的文件,用来配置log4net。这个文件的格式是XML格式。 3. 配置log4net:打开log4net.config文件,并在其配置你想要的日志记录器、附加器和布局。根据你的需求,你可以配置不同的日志记录级别、输出目标、日志文件路径等等。 以下是一个简单的log4net配置示例: ```xml <?xml version="1.0" encoding="utf-8"?> <log4net> <appender name="ConsoleAppender" type="log4net.Appender.ConsoleAppender"> <layout type="log4net.Layout.PatternLayout"> <conversionPattern value="%date [%thread] %-5level %logger - %message%newline" /> </layout> </appender> <root> <level value="DEBUG" /> <appender-ref ref="ConsoleAppender" /> </root> </log4net> ``` 在这个示例,我们配置了一个名为ConsoleAppender的附加器,用于将日志输出到控制台。我们还配置了一个根日志记录器,并将日志级别设置为DEBUG,并将ConsoleAppender附加到根日志记录器上。 4. 加载log4net配置:在你的应用程序的入口点(例如Main方法),添加以下代码来加载log4net配置: ```csharp using log4net; using log4net.Config; class Program { private static readonly ILog log = LogManager.GetLogger(typeof(Program)); static void Main(string[] args) { XmlConfigurator.Configure(new FileInfo("log4net.config")); log.Debug("Debug message"); log.Info("Info message"); log.Warn("Warn message"); log.Error("Error message"); log.Fatal("Fatal message"); } } ``` 在这个示例,我们首先引入log4net和log4net.Config命名空间。然后,我们使用ILog接口创建一个日志记录器,并在Main方法使用该日志记录器输出不同级别的日志消息。 注意:在加载log4net配置之前,确保log4net.config文件与应用程序的可执行文件在同一目录下,或者你可以指定配置文件的完整路径。 这就是使用log4net进行日志记录的基本配置步骤。你可以根据自己的需求进行进一步的配置和定制。

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值