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 に答える