log4j - 未重定向到控制台的代码中的日志语句

时间:2012-10-07 19:34:57

标签: java log4j

我正在使用Spring学习Hibernate,并使用JSF 2.0创建一个使用相同的应用程序。我正在尝试在我的应用程序中配置日志记录,但我的代码中的日志语句似乎没有被发送到输出(在我的情况下是控制台)。

我可以看到Hibernate日志语句:|

以下是我的项目结构:

structure snapshot http://i46.tinypic.com/2rwav7t.jpg

我的 log4j.properties

log4j.appender.stdout=org.apache.log4j.ConsoleAppender
log4j.appender.stdout.Target=System.out
log4j.appender.stdout.layout=org.apache.log4j.PatternLayout
log4j.appender.stdout.layout.ConversionPattern=%d{ABSOLUTE} %5p %c{1}:%L - %m%n

log4j.rootLogger=debug, stdout

log4j.logger.org.hibernate=info
log4j.logger.org.springframework=warn
log4j.logger.org.hibernate.hql.ast.AST=info
log4j.logger.org.hibernate.SQL=debug
log4j.logger.org.hibernate.type=info
log4j.logger.org.hibernate.tool.hbm2ddl=warn
log4j.logger.org.hibernate.hql=info
log4j.logger.org.hibernate.cache=info
log4j.logger.org.hibernate.jdbc=info

这是上下文监听器类的代码:

import org.apache.log4j.Logger;
...
...
...

public class HibernateListener implements ServletContextListener 
{
   private static final String CFG_PATH = "/WEB-INF/hibernate.cfg.xml";

   private static final Logger LOGGER = Logger.getLogger(HibernateListener.class);

   @Override
   public void contextDestroyed(ServletContextEvent event) {
      HibernateUtil.getSessionFactory().close();
   }

   @Override
   public void contextInitialized(ServletContextEvent event) {
      URL configFile = null;
      try {
         configFile = event.getServletContext().getResource(CFG_PATH);
         HibernateUtil.buildSessionFactory(configFile);
         LOGGER.info("Context initialization successful");
         System.out.println("Context initialization successful");
      }
      catch (MalformedURLException e) {
         System.err.println("Could not load hibernate configuration file - " + configFile);
      }
   }
}

我看不到INFO语句,也看不到sysout ......

1 个答案:

答案 0 :(得分:0)

似乎存在app server启动的问题,因为代码从未到达LOG语句。创建应用程序服务器的新实例后问题已解决...