2012-04-24 48 views
8

我试图使用log4net。当我启动应用程序时,它会创建日志文件,但无论我多次呼叫Log.Info("Application Started");,它都保持为空。我研究了Google返回的前两页,我的代码似乎与所有示例相匹配。log4net日志被创建,但仍为空

代码:

[assembly: XmlConfigurator(Watch = true)] 

namespace Generator 
{ 
    public class Run 
    { 

     private static readonly log4net.ILog Log = 
     log4net.LogManager.GetLogger(MethodBase.GetCurrentMethod().DeclaringType); 

     public List<BILL_RUN> PerformBillRun() 
     { 
      XmlConfigurator.Configure(); 

      Log.Info("Application Started"); 
      var enabled = Log.IsInfoEnabled; //This is true 
     } 

    } 

} 

的app.config

<configSections> 
    <section name="log4net" type="log4net.Config.Log4NetConfigurationSectionHandler, log4net"/> 
    </configSections> 

    <log4net> 
    <appender name="FileAppender" type="log4net.Appender.FileAppender"> 
     <file value="log-files.txt" /> 
     <appendToFile value="true" /> 
     <layout type="log4net.Layout.PatternLayout"> 
     <conversionPattern value="%date [%thread] %-5level %logger [%property{NDC}] - %message%newline" /> 
     </layout> 
    </appender> 

    <root> 
     <level value="All" /> 
     <appender-ref ref="FileAppender" /> 
    </root> 
    </log4net> 

任何指针,以什么可能是错的?

回答

6

这种事情总是发生在我身上......只要我提出这个问题。

原来我<configSections></configSections>标记不是直接孩子<configuration>这意味着该配置将不会被拾起(我认为),因为log4net的燕子所有异常这只本身表现进一步进入我的应用程序。

现在伐木工作正常。

+2

将''添加到您的配置的开始标记以查看更多信息(假设您有一个控制台来查看输出)也很有用) – Ryan 2015-04-14 05:27:04