找不到Log4 appender

时间:2016-11-17 09:11:53

标签: java logging ant log4j axis2

我正在制作AXIS2网络服务,因为我使用了Log4j。在运行应用程序时,它给出了错误

[[1]]
       datum         year   julian_day         date 
  "2016_266"       "2016"        "266" "2016-09-23" 

[[2]]
       datum         year   julian_day         date 
  "2016_286"       "2016"        "286" "2016-10-13" 

[[3]]
       datum         year   julian_day         date 
  "2016_166"       "2016"        "166" "2016-06-15" 

我做了以下事情

  1. 我已将commons-logging属性更改为使用log4j(因为AXIS使用常见日志记录)
  2. 要检查log4j.properties是否在类路径中,我已使用资源包nad尝试从log4j.properties获取属性 - 打印
  3. myapp.aar文件的目录结构如下 enter image description here

    我如何从这里前进,我无能为力,请帮助我。

    正如所建议我用-Dlog4j.debug = true运行我的应用程序,但在哪里可以找到log4j log

     [java] log4j:WARN No appenders could be found for logger (org.apache.axis2.deployment.FileSystemConfigurator).
     log4j:WARN Please initialize the log4j system properly.
    

1 个答案:

答案 0 :(得分:0)

还有另一个选项可以在Axis 2 Web服务中定义log4j配置文件的位置,方法是使用 HttpServlet ,它在应用程序启动时激发并定义文件到log4j的位置。下面列出了要求代码:

1.在web.xml中定义 servlet

 <servlet>
    <servlet-name>log4j-init</servlet-name>
    <servlet-class>com.log.LogInit</servlet-class>
    <init-param>
        <param-name>app-log4j-file</param-name>
        <param-value>/WEB-INF/conf/log4j.properties</param-value>
    </init-param>
    <load-on-startup>1</load-on-startup>
  </servlet>

在此示例中,log4j.properties文件的位置在WEB-INF-&gt; conf

1.创建 LogInit 类在com.log包下扩展 HttpServlet

public class LogInit extends HttpServlet{
/**
 * 
 */
private static final long serialVersionUID = 1L;

public void init() {
    String path =  getServletContext().getRealPath("/");
    String fileName = getInitParameter("app-log4j-file");
    String strPathFile = path + fileName;
    if(strPathFile != null) {
      PropertyConfigurator.configure(strPathFile);
   }
}
}