log4net 在VS2010 NET4下的使用
来源:互联网 发布:linux新建文档命令 编辑:程序博客网 时间:2024/04/24 21:20
下面是我成功使用的过程。
首先去网站下载好log4net-1.2.10源码,编译源码前要进行以下修改:
1.在源码项目添加“System.configuration”空间引用
2.在项目属性的生成标签页中(log4net项目按右键,点属性,选生成标签),将条件编译符号定义修改成:NET;NET_2_0;NET_4_0
同时修改输出路径为../build/bin/net/4.0/debug/
3.在项目属性的应用程序标签页中,将目标框架修改成.NET Framework 4, 注意使用 .NET 4 Client Profile 将导致有问题。
4.在项目的config目录下找到 XmlConfigurator.cs,打开它,在 623行左右替换 settings.ProhibitDtd = false; 在#elif NET_2_0 判断后加入.Net4新属性,修改成如下:
#elif NET_2_0
// Allow the DTD to specify entity includes
XmlReaderSettings settings = new XmlReaderSettings();
#if NET_4_0
settings.DtdProcessing = DtdProcessing.Parse;
#else
settings.ProhibitDtd = false;
#endif
5.修改项目中的AssemblyInfo.cs文件
首先修改代码34行左右,将其改为如下:
#if (!NETCF && !NET_4_0)
//
// If log4net is strongly named it still allows partially trusted callers
//
[assembly: System.Security.AllowPartiallyTrustedCallers]
#endif
接着在 AssemblyInfo.cs 的Assembly Title 部份增加 .Net4,即#elif (NET_2_0)前,大约在53行左右,修改如下:
#elif (NET_4_0)
[assembly: AssemblyTitle("log4net for .NET Framework 4.0")]
#elif (NET_2_0)
[assembly: AssemblyTitle("log4net for .NET Framework 2.0")]
好了。现在应该可以编译log4net了。
对于log4net的使用
1.将你的VS2010项目的目标框架设为.NET Framework 4;
2.接着引用log4net.dll;
3.然后设置你的app.config,注意:右键 app.config文件点击【属性】,在属性窗口中将‘复制到输出目录’改为‘如果较新则复制’
或者你可以手动将 app.config 文件复制到你应用程序输出目录。如果不这样做 log4net 组件是找不到配置文件的,但是它本身不会报错。就是不会出现日志信息具体的配置。以下是我的配置示例如下:
<?xml version="1.0"?>
<configuration>
<configSections>
<section name="log4net" type="log4net.Config.Log4NetConfigurationSectionHandler,log4net-net-4.0" />
</configSections>
<log4net>
<appender name="RollingLogFileAppender" type="log4net.Appender.RollingFileAppender">
<param name="File" value="Log\Log.txt" />
<param name="AppendToFile" value="true" />
<param name="MaxSizeRollBackups" value="100" />
<param name="MaximumFileSize" value="2MB" />
<param name="RollingStyle" value="Size" />
<param name="StaticLogFileName" value="true" />
<layout type="log4net.Layout.PatternLayout">
<param name="ConversionPattern" value="%-5p %d [%c] %m%n" />
</layout>
</appender>
<root>
<level value="all" />
<appender-ref ref="RollingLogFileAppender" />
</root>
</log4net>
<startup>
<supportedRuntime version="v4.0" sku=".NETFramework,Version=v4.0" />
</startup>
</configuration>
4.在项目的AssemblyInfo.cs文件中添加如下语句:
[assembly: log4net.Config.XmlConfigurator(Watch = true)]
通过上面的配置就可以使用了。
我们可以在窗体上测试一下:
private void Form1_Load(object sender, EventArgs e)
{
log4net.ILog LOG = log4net.LogManager.GetLogger(MethodBase.GetCurrentMethod().DeclaringType);
log.Debug("test");
}
很好,一运行,log.txt就生成了。
//如果要记录所有未捕捉的异常,修改Program.cs如下
static class Program
{
static log4net.ILog LOG = log4net.LogManager.GetLogger(MethodBase.GetCurrentMethod().DeclaringType);
/// <summary>
/// 应用程序的主入口点。
/// </summary>
[STAThread]
static void Main()
{
//捕获未处理异常
Application.SetUnhandledExceptionMode(UnhandledExceptionMode.CatchException);
Application.ThreadException += new System.Threading.ThreadExceptionEventHandler(Application_ThreadException);
AppDomain.CurrentDomain.UnhandledException += new UnhandledExceptionEventHandler(CurrentDomain_UnhandledException);
// 捕获完毕 [5/21/2012 Administrator]
Application.EnableVisualStyles();
Application.SetCompatibleTextRenderingDefault(false);
Application.Run(new Form1());
}
static void Application_ThreadException(object sender, System.Threading.ThreadExceptionEventArgs e)
{
LOG.Error(e.Exception);
MessageBox.Show(e.Exception.Message, "线程异常", MessageBoxButtons.OK, MessageBoxIcon.Error);
Application.Exit();
}
static void CurrentDomain_UnhandledException(object sender, UnhandledExceptionEventArgs e)
{
Exception ex = e.ExceptionObject as Exception;
LOG.Error(ex);
MessageBox.Show(ex.Message, "应用程序异常", MessageBoxButtons.OK, MessageBoxIcon.Error);
Application.Exit();
}
}
- log4net 在VS2010 NET4下的使用
- 如何在VS2010下使用Log4Net
- VS2010下使用log4net
- VS2010中NET4项目中使用LOG4NET办法
- VS2010在.net4框架下智能提示异常的问题
- log4net在.Net下的应用(vs2010下不能使用)
- log4net配置在.net4.0
- vs2010使用log4net
- vs2010 中使用 log4net
- vs2010 中使用 log4net
- vs2010使用log4net
- vs2010使用log4net
- 关于vs2010下.net4.0 C#代码的混淆--网上各种破解版混淆工具的使用记录
- .net4.0环境下UpdatePanel在iphone下无法正常使用的解决方案
- QT在VS2010下的使用配置
- [VS2010].NET4.0环境下使用.NET2.0程序集,出现“混合模式程序集异常”
- [VS2010].NET4.0环境下使用.NET2.0程序集,出现“混合模式程序集异常”
- [VS2010].NET4.0环境下使用.NET2.0程序集,出现“混合模式程序集异常”
- Windows下安装Android 4.0
- eclipse调试开源代码方法
- 不用判断语句,求两个数的最大值
- 欧拉路和欧拉图
- PID参数调节总结
- log4net 在VS2010 NET4下的使用
- hdu 1277 全文检索
- 源码安装软件 pkgconfig ld.so.conf ldconfig
- 五、工厂模式
- eclipse安装ADT插件
- Completion
- 序列容器(list)
- linux UART串口驱动开发文档
- Windows Phone开发(42):缓动动画