2011-04-10 50 views
7

所以我试图在我的Web .NET 4.0应用程序中设置Log4Net。我加入了正确的.dll文件到我的项目,并附加以下到我的web.config文件作为首发:Web.Config中的Log4Net部分生成错误

<configSections> 
<section name="log4net" type="log4net.Config.Log4NetConfigurationSectionHandler, log4net"/> 
<root> 
    <level value="DEBUG" /> 
    <appender-ref ref="RollingLogFileAppender" /> 
</root> 
</configSections> 
<log4net debug="true"> 
<appender name="RollingLogFileAppender" type="log4net.Appender.RollingFileAppender"> 
    <file value="C:\\TestProj\\TestLog.txt" /> 
    <appendToFile value="true" /> 
    <rollingStyle value="Size" /> 
    <maxSizeRollBackups value="10" /> 
    <maximumFileSize value="10MB" /> 
    <staticLogFileName value="true" /> 
    <layout type="log4net.Layout.PatternLayout"> 
    <conversionPattern value="%-5p %d %5rms %-22.22c{1} %-18.18M - %m%n" /> 
    </layout> 
</appender> 

但是,如果我的“log4net的”部分添加到Web.config中,我将收到错误消息

无法在Web服务器上开始调试。查看常见的帮助 配置问题.....

确保服务器运行正常。确认没有语法错误 在web.config ........

注意 我可以删除此节的所有的内部,只留下声明:

<log4net></log4net> 

我仍然会得到相同的错误。

有人可以给我一些关于如何追踪这个错误的指针吗?

回答

1

查看log4net documentation主页上的示例配置。
您可能错位了所需的标签。

+0

谢谢,我发现了这个问题。 – pghtech 2011-04-10 13:42:33

13

对于开发商谁不知道究竟如何开始下面可能是一个帮助

ConfigSections中的app.config

记得告诉您的应用程序库推出了自定义配置节是你打算利用,我不完全确定它是否是强制性的,但我始终将它用作根标记<configuration>中的第一部分。

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

log4net的配置中的app.config

有很多种在log4net的提供不同附加目的地,但我通常使用RollingFileAppender进行,所以我用这个样品在同一个,你可以找到休息那些here

<log4net> 
    <!-- file appender --> 
    <appender name="RollingFileAppender" type="log4net.Appender.RollingFileAppender"> 
     <file value="C:/logs/my_log_file.log"/> 
     <appendToFile value="true"/> 
     <rollingStyle value="Date"/> 
     <maxSizeRollBackups value="30"/> 
     <datePattern value=".yyyy-MM-dd"/> 
     <staticLogFileName value="true"/> 
     <layout type="log4net.Layout.PatternLayout"> 
     <conversionPattern value="%date [%thread] %-5level %logger - %message%newline"/> 
     </layout> 
    </appender> 
    <root> 
     <level value="DEBUG"/> 
     <appender-ref ref="RollingFileAppender"/> 
    </root> 
    </log4net> 

更新AssemblyInfo.cs文件

我总是忘记这一步,每当我要创建一个新的项目。因此,请记住,您必须告诉您的应用程序注意XMLConfigurator以执行log4net的配置,因此以下行将在AssemblyInfo的末尾处执行。CS文件:

[assembly: log4net.Config.XmlConfigurator(Watch = true)] 

入门

记住要包括的log4net.dll参考然后使用代码下面一行一类

private static ILog log = LogManager.GetLogger(typeof(MyClass)); 

内初始化记录器和结束时让使用它像下面这样

log.Info("Hello log4net"); 

快乐记录:)