log4net写入日志文件示例时一个奇怪的错误

昨天园子里朋友问起:利用log4net向文件里记录日志不成功!
因为以前邀月曾经在写入SQL时费了一番周折,以为这次应该不会有问题,如法炮制即可。可以参考
log4net写入到SQL server的基本配置(downmoon)
不料试了一下,使用最新版版的log4net1.2.10 ,发现FileAppender老是不成功!
把步骤写下来:
先将下载的log4net.dll添加引用,再在(用的是Console Application)AssemblyInfo.cs中添加:
<!--

Code highlighting produced by Actipro CodeHighlighter (freeware)
http://www.CodeHighlighter.com/

--&gt[assembly: log4net.Config.XmlConfigurator(ConfigFile = "log4net.config", Watch = true)]
并添加独立的lognet.config文件如下:
<!--

Code highlighting produced by Actipro CodeHighlighter (freeware)
http://www.CodeHighlighter.com/

--&gtlog4net写入日志文件示例时一个奇怪的错误xml version="1.0"?>
log4net写入日志文件示例时一个奇怪的错误
<configuration>
log4net写入日志文件示例时一个奇怪的错误    
<configSections>
log4net写入日志文件示例时一个奇怪的错误        
<section name="log4net" type="log4net.Config.Log4NetConfigurationSectionHandler, log4net" />
log4net写入日志文件示例时一个奇怪的错误    
configSections>
log4net写入日志文件示例时一个奇怪的错误    
<log4net>
log4net写入日志文件示例时一个奇怪的错误        
<!--Log4net Begin by Tony  2009.09.28--&gt
log4net写入日志文件示例时一个奇怪的错误        
<appender name="LogFileAppender" type="log4net.Appender.FileAppender">
log4net写入日志文件示例时一个奇怪的错误            
<file value="D:\\Log4netDemo.txt" />
log4net写入日志文件示例时一个奇怪的错误            
<appendToFile value="true" />
log4net写入日志文件示例时一个奇怪的错误            
<lockingModel type="log4net.Appender.FileAppender+MinimalLock" />
log4net写入日志文件示例时一个奇怪的错误            
<layout type="log4net.Layout.PatternLayout">
log4net写入日志文件示例时一个奇怪的错误                
<conversionPattern value="%date [%thread] %-5level %logger [%property{NDC}] - %message%newline" />
log4net写入日志文件示例时一个奇怪的错误            
layout>
log4net写入日志文件示例时一个奇怪的错误        
appender>
log4net写入日志文件示例时一个奇怪的错误        
<!-- setup the root category, add the appenders and set the default level --&gt
log4net写入日志文件示例时一个奇怪的错误        
<root>
log4net写入日志文件示例时一个奇怪的错误            
<level value="DEBUG"/>
log4net写入日志文件示例时一个奇怪的错误            
<appender-ref ref="LogFileAppender" />
log4net写入日志文件示例时一个奇怪的错误        
root>
log4net写入日志文件示例时一个奇怪的错误        
<!-- specify the level for some specific categories --&gt
log4net写入日志文件示例时一个奇怪的错误       
<!-- 
log4net写入日志文件示例时一个奇怪的错误            
log4net写入日志文件示例时一个奇怪的错误            
log4net写入日志文件示例时一个奇怪的错误            
log4net写入日志文件示例时一个奇怪的错误            
log4net写入日志文件示例时一个奇怪的错误            
log4net写入日志文件示例时一个奇怪的错误        
log4net写入日志文件示例时一个奇怪的错误        
log4net写入日志文件示例时一个奇怪的错误            
log4net写入日志文件示例时一个奇怪的错误            
log4net写入日志文件示例时一个奇怪的错误        
log4net写入日志文件示例时一个奇怪的错误
--&gt
log4net写入日志文件示例时一个奇怪的错误    
log4net>
log4net写入日志文件示例时一个奇怪的错误    
<!--Log4net End--&gt
log4net写入日志文件示例时一个奇怪的错误
log4net写入日志文件示例时一个奇怪的错误
log4net写入日志文件示例时一个奇怪的错误
configuration>
log4net写入日志文件示例时一个奇怪的错误

这是参考官方配置写的,应该不会有问题。不过始终没有写成功!
测试代码如下:
<!--

Code highlighting produced by Actipro CodeHighlighter (freeware)
http://www.CodeHighlighter.com/

--&gtlog4net写入日志文件示例时一个奇怪的错误
log4net写入日志文件示例时一个奇怪的错误
namespace TestLog4NetFile
log4net写入日志文件示例时一个奇怪的错误log4net写入日志文件示例时一个奇怪的错误
log4net写入日志文件示例时一个奇怪的错误{
log4net写入日志文件示例时一个奇怪的错误   
public class Program
log4net写入日志文件示例时一个奇怪的错误log4net写入日志文件示例时一个奇怪的错误    
log4net写入日志文件示例时一个奇怪的错误{
log4net写入日志文件示例时一个奇怪的错误        
private static readonly log4net.ILog log = log4net.LogManager.GetLogger(typeof(Program));
log4net写入日志文件示例时一个奇怪的错误        
private static log4net.ILog myLogger = log4net.LogManager.GetLogger(System.Reflection.MethodBase.GetCurrentMethod().DeclaringType);
log4net写入日志文件示例时一个奇怪的错误       
log4net写入日志文件示例时一个奇怪的错误        
public static void Main(string[] args)
log4net写入日志文件示例时一个奇怪的错误log4net写入日志文件示例时一个奇怪的错误        
log4net写入日志文件示例时一个奇怪的错误{
log4net写入日志文件示例时一个奇怪的错误            TestlogtoFile();
log4net写入日志文件示例时一个奇怪的错误        }

log4net写入日志文件示例时一个奇怪的错误        
public static void TestlogtoFile()
log4net写入日志文件示例时一个奇怪的错误log4net写入日志文件示例时一个奇怪的错误        
log4net写入日志文件示例时一个奇怪的错误{
log4net写入日志文件示例时一个奇怪的错误            
string title = "log4net测试写入File";
log4net写入日志文件示例时一个奇怪的错误            
for (int i = 1; i < 3; i++)
log4net写入日志文件示例时一个奇怪的错误log4net写入日志文件示例时一个奇怪的错误            
log4net写入日志文件示例时一个奇怪的错误{
log4net写入日志文件示例时一个奇怪的错误                
try
log4net写入日志文件示例时一个奇怪的错误log4net写入日志文件示例时一个奇怪的错误                
log4net写入日志文件示例时一个奇怪的错误{
log4net写入日志文件示例时一个奇怪的错误                    
int lng = int.Parse("testnumber");
log4net写入日志文件示例时一个奇怪的错误                }

log4net写入日志文件示例时一个奇怪的错误                
catch (System.Exception ex)
log4net写入日志文件示例时一个奇怪的错误log4net写入日志文件示例时一个奇怪的错误                
log4net写入日志文件示例时一个奇怪的错误{
log4net写入日志文件示例时一个奇怪的错误                    
//记录错误日志
log4net写入日志文件示例时一个奇怪的错误
                    myLogger.Error(title + "error:" + ex.Message);
log4net写入日志文件示例时一个奇怪的错误                    
//记录严重错误
log4net写入日志文件示例时一个奇怪的错误
                    myLogger.Fatal(title + "fatal:" + ex.Message);
log4net写入日志文件示例时一个奇怪的错误                    
//记录一般信息
log4net写入日志文件示例时一个奇怪的错误
                    myLogger.Info(title + "info:" + ex.Message);
log4net写入日志文件示例时一个奇怪的错误                    
//记录调试信息
log4net写入日志文件示例时一个奇怪的错误
                    myLogger.Debug(title + "debug:", ex);
log4net写入日志文件示例时一个奇怪的错误                    
//记录警告信息
log4net写入日志文件示例时一个奇怪的错误
                    myLogger.Warn(title + "warn:", ex);
log4net写入日志文件示例时一个奇怪的错误
log4net写入日志文件示例时一个奇怪的错误                    Console.WriteLine(
"日志记录" + i + "完毕。");
log4net写入日志文件示例时一个奇怪的错误                }

log4net写入日志文件示例时一个奇怪的错误            }

log4net写入日志文件示例时一个奇怪的错误            myLogger.Error(title 
+ "Error:" + System.DateTime.Now);
log4net写入日志文件示例时一个奇怪的错误            Console.WriteLine(
"日志记录{X}完毕。");
log4net写入日志文件示例时一个奇怪的错误            Log4netDemo.TestlogtoFile();
log4net写入日志文件示例时一个奇怪的错误            Console.WriteLine(
"当前类调用其他类日志记录完毕。");
log4net写入日志文件示例时一个奇怪的错误            
try
log4net写入日志文件示例时一个奇怪的错误log4net写入日志文件示例时一个奇怪的错误            
log4net写入日志文件示例时一个奇怪的错误{
log4net写入日志文件示例时一个奇怪的错误                
throw new Exception(title);
log4net写入日志文件示例时一个奇怪的错误            }

log4net写入日志文件示例时一个奇怪的错误            
catch (System.Exception)
log4net写入日志文件示例时一个奇怪的错误log4net写入日志文件示例时一个奇怪的错误            
log4net写入日志文件示例时一个奇怪的错误{
log4net写入日志文件示例时一个奇怪的错误                
//记录错误日志
log4net写入日志文件示例时一个奇怪的错误
                log.Error("error");
log4net写入日志文件示例时一个奇怪的错误                
//记录严重错误
log4net写入日志文件示例时一个奇怪的错误
                log.Fatal("fatal");
log4net写入日志文件示例时一个奇怪的错误                
//记录一般信息
log4net写入日志文件示例时一个奇怪的错误
                log.Info("info");
log4net写入日志文件示例时一个奇怪的错误                
//记录调试信息
log4net写入日志文件示例时一个奇怪的错误
                log.Debug("debug");
log4net写入日志文件示例时一个奇怪的错误                
//记录警告信息
log4net写入日志文件示例时一个奇怪的错误
                log.Warn("warn");
log4net写入日志文件示例时一个奇怪的错误                Console.WriteLine(
"当前类日志记录完毕。");
log4net写入日志文件示例时一个奇怪的错误                Console.ReadKey();
log4net写入日志文件示例时一个奇怪的错误            }

log4net写入日志文件示例时一个奇怪的错误            Console.ReadKey();
log4net写入日志文件示例时一个奇怪的错误        }

log4net写入日志文件示例时一个奇怪的错误        
public class Log4netDemo
log4net写入日志文件示例时一个奇怪的错误log4net写入日志文件示例时一个奇怪的错误        
log4net写入日志文件示例时一个奇怪的错误{
log4net写入日志文件示例时一个奇怪的错误log4net写入日志文件示例时一个奇怪的错误            
public Log4netDemo() log4net写入日志文件示例时一个奇怪的错误{ }
log4net写入日志文件示例时一个奇怪的错误            
private static readonly log4net.ILog log = log4net.LogManager.GetLogger(typeof(Log4netDemo));
log4net写入日志文件示例时一个奇怪的错误
log4net写入日志文件示例时一个奇怪的错误            
public static void TestlogtoFile()
log4net写入日志文件示例时一个奇怪的错误log4net写入日志文件示例时一个奇怪的错误            
log4net写入日志文件示例时一个奇怪的错误{
log4net写入日志文件示例时一个奇怪的错误                
try
log4net写入日志文件示例时一个奇怪的错误log4net写入日志文件示例时一个奇怪的错误                
log4net写入日志文件示例时一个奇怪的错误{
log4net写入日志文件示例时一个奇怪的错误                    
throw new Exception("log4net测试写入File");
log4net写入日志文件示例时一个奇怪的错误                }

log4net写入日志文件示例时一个奇怪的错误                
catch (System.Exception)
log4net写入日志文件示例时一个奇怪的错误log4net写入日志文件示例时一个奇怪的错误                
log4net写入日志文件示例时一个奇怪的错误{
log4net写入日志文件示例时一个奇怪的错误                    
//记录错误日志
log4net写入日志文件示例时一个奇怪的错误
                    log.Error("error");
log4net写入日志文件示例时一个奇怪的错误                    
//记录严重错误
log4net写入日志文件示例时一个奇怪的错误
                    log.Fatal("fatal");
log4net写入日志文件示例时一个奇怪的错误                    
//记录一般信息
log4net写入日志文件示例时一个奇怪的错误
                    log.Info("info");
log4net写入日志文件示例时一个奇怪的错误                    
//记录调试信息
log4net写入日志文件示例时一个奇怪的错误
                    log.Debug("debug");
log4net写入日志文件示例时一个奇怪的错误                    
//记录警告信息
log4net写入日志文件示例时一个奇怪的错误
                    log.Warn("warn");
log4net写入日志文件示例时一个奇怪的错误                    Console.WriteLine(
"日志记录完毕。");
log4net写入日志文件示例时一个奇怪的错误                    Console.ReadKey();
log4net写入日志文件示例时一个奇怪的错误                }

log4net写入日志文件示例时一个奇怪的错误
log4net写入日志文件示例时一个奇怪的错误            }

log4net写入日志文件示例时一个奇怪的错误
log4net写入日志文件示例时一个奇怪的错误        }

log4net写入日志文件示例时一个奇怪的错误    }

log4net写入日志文件示例时一个奇怪的错误}

log4net写入日志文件示例时一个奇怪的错误

不知道原因,后来看到有人在winform下写入成功,用的是log4net.Appender.RollingFileAppender
试着改了下配置文件,结果调试成功!修改后的配置文件如下:
<!--

Code highlighting produced by Actipro CodeHighlighter (freeware)
http://www.CodeHighlighter.com/

--&gtlog4net写入日志文件示例时一个奇怪的错误xml version="1.0" encoding="utf-8"?>
log4net写入日志文件示例时一个奇怪的错误
<configuration>
log4net写入日志文件示例时一个奇怪的错误    
<configSections>
log4net写入日志文件示例时一个奇怪的错误        
<section name="log4net" type="log4net.Config.Log4NetConfigurationSectionHandler, log4net" />
log4net写入日志文件示例时一个奇怪的错误    
configSections>
log4net写入日志文件示例时一个奇怪的错误    
<log4net>
log4net写入日志文件示例时一个奇怪的错误        
<appender name="LogFileAppender" type="log4net.Appender.RollingFileAppender">
log4net写入日志文件示例时一个奇怪的错误            
<param name="File" value="d:\\Log4netDemo" />
log4net写入日志文件示例时一个奇怪的错误            
<param name="AppendToFile" value="true" />
log4net写入日志文件示例时一个奇怪的错误            
<param name="MaxSizeRollBackups" value="10" />
log4net写入日志文件示例时一个奇怪的错误            
<param name="StaticLogFileName" value="false" />
log4net写入日志文件示例时一个奇怪的错误            
<param name="DatePattern" value="yyyyMMddHH".log""  />
log4net写入日志文件示例时一个奇怪的错误            
<param name="RollingStyle" value="Date" />
log4net写入日志文件示例时一个奇怪的错误            
<layout type="log4net.Layout.PatternLayout">
log4net写入日志文件示例时一个奇怪的错误                
<!----&gt
log4net写入日志文件示例时一个奇怪的错误                
<param name="ConversionPattern" value="%d [%t] %-5p %l  %m  %n" />
log4net写入日志文件示例时一个奇怪的错误            
layout>
log4net写入日志文件示例时一个奇怪的错误        
appender>
log4net写入日志文件示例时一个奇怪的错误        
<root>
log4net写入日志文件示例时一个奇怪的错误            
<level value="All" />
log4net写入日志文件示例时一个奇怪的错误            
<appender-ref ref="LogFileAppender" />
log4net写入日志文件示例时一个奇怪的错误        
root>
log4net写入日志文件示例时一个奇怪的错误    
log4net>
log4net写入日志文件示例时一个奇怪的错误
configuration>

调试结果如图:
log4net写入日志文件示例时一个奇怪的错误

希望有高手解答一下这是为何?有时间自己再研究一下。 后来试了下,奇怪,以前的配置文件也可以写成功!难道是log4net版本的问题?下载最新源码1.2.10调试后发现成功·用release生成的dll也成功· 真的是不明白。
源码下载

原文地址:http://www.cnblogs.com/downmoon/archive/2009/09/28/1575576.html

来自 “ ITPUB博客 ” ,链接:http://blog.itpub.net/16436858/viewspace-617276/,如需转载,请注明出处,否则将追究法律责任。

转载于:http://blog.itpub.net/16436858/viewspace-617276/