繁体   English   中英

Log4j没有使用属性文件查找自定义appender

[英]Log4j not finding custom appender using a property file

我正在尝试使用以下XML属性文件在Eclipse插件项目中配置log4j,该文件包含一个名为EclipseLoggingAppender的自定义appender:

<?xml version="1.0" encoding="UTF-8" ?>
<!DOCTYPE log4j:configuration SYSTEM "log4j.dtd">

<log4j:configuration xmlns:log4j="http://jakarta.apache.org/log4j/" debug="true">
  <appender name="eclipseErrorView" class="com.lior.ibd.utils.logging.EclipseLoggingAppender"/> 

<appender name="console" class="org.apache.log4j.ConsoleAppender"> 
    <param name="Target" value="System.out"/> 
    <layout class="org.apache.log4j.PatternLayout"> 
      <param name="ConversionPattern" value="%-5p %c{1} - %m%n"/> 
    </layout> 
  </appender>

  <root> 
    <priority value ="debug" /> 
    <appender-ref ref="console" /> 
  </root>
  <logger name="com.lior">
    <level value ="warn" /> 
    <appender-ref ref="eclipseErrorView" />
  </logger> 

</log4j:configuration>

我将此属性文件传递给代码中的以下语句:

DOMConfigurator.configure(filename);

但是在加载应用程序时,我收到以下错误消息:

log4j:ERROR Could not create an Appender. Reported error follows.
java.lang.ClassNotFoundException: com.lior.ibd.utils.logging.EclipseLoggingAppender

谁知道这笔交易是什么? 可能是类路径问题?..

对于初学者,你只能有一个<root>元素。 你想要更像的东西

<appender name="eclipseErrorView" class="com.mypackage.EclipseLoggingAppender"> 
  <filter class="org.apache.log4j.varia.LevelRangeFilter Source code of org.apache.log4j.varia.LevelRangeFilter">
    <param name="LevelMin" value="WARN" />
  </filter>
</appender>

<root>
  <priority value ="debug" /> 
  <appender-ref ref="console" />
  <appender-ref ref="eclipseErrorView" />
</root> 

您是如何将自定义记录器添加到类路径的?

是的,这是一个类路径问题。 Log4j正在寻找com.lior.ibd.utils.logging.EclipseLoggingAppender类。 (可能是在你的组织中写过某人的appender?)

如果删除行:

 <appender name="eclipseErrorView" class="com.lior.ibd.utils.logging.EclipseLoggingAppender"/>

 <logger name="com.lior">
   <level value ="warn" /> 
   <appender-ref ref="eclipseErrorView" />
 </logger> 

log4j应该处理它。

或者通过查找适当的jar文件并将其添加到类路径,将EclipseLoggingAppender添加到类路径。 即跑

java -cp appender.jar com.mypackage.MyClass

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM