2010-07-05 70 views
0

我很新的log4net的,我试图创建多个文件,并用我的方法调用相应的登录到他们这里是我的代码:登录到几个文件,我做错了什么?

private static readonly ILog firstlog = LogManager.GetLogger("Data"); private static readonly ILog secondlog = LogManager.GetLogger("General"); 

,然后我日志是这样的:

firstlog.Info("some message"); secondlog.Info("some message"); 

,这里是我的配置文件:

<appender name="General" type="log4net.Appender.RollingFileAppender"> 
    <file type="log4net.Util.PatternString" value="C:\logs\myfile1.log"/> 
    <param name="Threshold" value="DEBUG"/> 
    <appendToFile value="true"/> 
    <rollingStyle value="Size"/> 
    <maxSizeRollBackups value="10"/> 
    <maximumFileSize value="10MB"/> 
    <staticLogFileName value="true"/> 
    <layout type="log4net.Layout.PatternLayout"> 
    <conversionPattern value="%date [%thread] %method %-5level %logger – %message%newline"/> 
    </layout> 
</appender> 
<appender name="Data" type="log4net.Appender.RollingFileAppender"> 
    <file type="log4net.Util.PatternString" value="C:\logs\myfile2.log"/> 
    <param name="Threshold" value="DEBUG"/> 
    <appendToFile value="true"/> 
    <rollingStyle value="Size"/> 
    <maxSizeRollBackups value="10"/> 
    <maximumFileSize value="10MB"/> 
    <staticLogFileName value="true"/> 
    <layout type="log4net.Layout.PatternLayout"> 
    <conversionPattern value="%date [%thread] %method %-5level %logger – %message%newline"/> 
    </layout> 
</appender> 
<logger name="general"> 
    <appender-ref ref="General"/> 
</logger> 
<logger name="data"> 
    <appender-ref ref="Data"/> 
</logger> 
<root> 
    <appender-ref ref="Data"/> 
</root> 

而且他们在一个文件中的所有记录,另两个文件是空的。为什么是这样? 我在做什么错?

+0

“他们都记录在一个文件中” - 该文件实际上写? – rkellerm 2010-07-05 09:10:02

+1

只是一个猜测,但你可以尝试提供确切的记录器名称LogManager.GetLogger万一它是区分大小写的。 – 2010-07-05 09:13:44

+0

它们被记录到file2。 是的,我注意到数据和一般是小写,但我仍然得到同样的事情。 我在想根目录是“数据”appender,但我的记录器都没有做什么,我可能是错的。 – Precious 2010-07-05 09:17:40

回答

0

尝试删除线

<appender-ref ref="Data"/> 

从节点...

+0

我应该删除根节点,如果我从所有记录器中删除它不会是相同的日志记录到单个文件。 – Precious 2010-07-05 09:18:28

+0

节点本身应保留在配置中。在你的例子中,appender“Data”被配置两次,因为每个记录器都从root继承配置。如果您清空根节点,则解决该问题。 – Koen 2010-07-05 09:22:51

+0

是的,它工作时,我从根节点删除appender它停止记录evrything文件2。但是另一个内部错误导致了我现在修复的这种困境。 thnx by d way ... 上帝我爱这个网站非常有帮助的人:P – Precious 2010-07-05 09:37:23