Apache 是<;参数>;标签是否应该与<;记录器>;或<;根>;?

Apache 是<;参数>;标签是否应该与<;记录器>;或<;根>;?,apache,log4net,log4net-configuration,Apache,Log4net,Log4net Configuration,由此,我了解到标记应该与标记一起工作,但显然不是这样 例如,这: <logger name="LogTest"> <level value="INFO"/> <appender-ref ref="FileAppender"/> <param name="File" value="f:\dev\logfile"/> </logger> …产生以下错误: XmlHierarchyConfigurator:找不到

由此,我了解到
标记应该与
标记一起工作,但显然不是这样

例如,这:

<logger name="LogTest">
    <level value="INFO"/>
    <appender-ref ref="FileAppender"/>
    <param name="File" value="f:\dev\logfile"/>
</logger>

…产生以下错误:

XmlHierarchyConfigurator:找不到要在[log4net.Repository.Hierarchy.DefaultLoggerFactory+LoggerImpl]上设置对象的属性[File]。来源:log4net.Repository.Hierarchy.XmlHierarchyConfigurator


我做错了什么?

它工作正常,但是
记录器
没有
文件
属性,正如消息正确地说的那样。这是appender的一个属性。不能使用一个appender(
FileAppender
)写入多个文件。参数化
文件追加器
,或拆分为多个追加器。如果您只想配置文件的位置,只需直接配置
文件追加器
,而不必配置记录器。在记录器上唯一需要配置的是
级别
附加器
,而不是其他
param
只是为了完整起见,以防您有一个自定义的logger类具有其他属性(这将是一件罕见的事情)。哦,我没听清楚它是关于“logger”参数的,而不是关于FileAppender的。谢谢你的指点。此外,我现在明白了,我不能将其用作具有不同文件路径的多个FileAppender的“工厂”,而是必须在配置中克隆Appender。那太可悲了。谢谢。如果配置太麻烦,您总是可以通过编程方式添加附加器和/或记录器。比如说,谢谢,我知道。但不幸的是,我的设置是数不清的配置,任何配置都可以是任何配置。