当前位置: 代码迷 >> Web前端 >> Web工程部署到WebLogic9.2配置Log4j有关问题
  详细解决方案

Web工程部署到WebLogic9.2配置Log4j有关问题

热度:173   发布时间:2012-08-25 10:06:20.0
Web工程部署到WebLogic9.2配置Log4j问题

使用commons-logging接口管理log4j打印日志

?

现象:

1.开发中使用tomcat作应用服务器,只要吧log4j.properties放到src下即可正确的打印出日志。

2.开发中使用WebLogic9.2作为应用服务器

a)发布成Exploded Archive,打印日志正常

b)发布成Packaged Archive,不能打印日志

怀疑打包后WebLogic不能读取log4j配置文件

?

原因:

web.xmllog4j的配置方式问题,默认情况log4j.properties放在classes目录下,而由于war没展开,找不到这个文件,所以把它直接放WEB-INF目录下,并去掉原来web.xml里面的如下配置:

?

        <servlet>
                  <servlet-name>log4j</servlet-name>
                  <servlet-class>
                           org.springframework.web.util.Log4jConfigServlet
                  </servlet-class>
                  <load-on-startup>1</load-on-startup>
        </servlet>

?

?

解决办法:

新建一个servlet,初始化log4j配置文件:

?

public void init() throws ServletException {
                  InputStream is = getServletContext().getResourceAsStream(
                                    "/WEB-INF/classes/log4j.properties");
                  Properties props = new Properties();
                  try {
                           props.load(is);
                  } catch (IOException e) {
                           System.err.println("Load log4j configuration failed");
                  }
                  PropertyConfigurator.configure(props);
        }

?

?

?并注册到web.xml中?

?

?

?