0

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

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

以下是我的项目结构:

结构快照

还有我的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 ...

4

1 回答 1

0

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

于 2012-10-08T15:39:35.283 回答