1

私は次のような組織を持っていました

  • src/main/resources/log4j.xml
  • src/main/resources/hibernate.properties

Webアプリを次のように再編成したかったのです。

  • src/main/resources/log/log4j.xml
  • src/main/resources/orm/hibernate.properties

まだ(コンテキストパラメーターLogger.info("foobar")を設定した後)正常にログに記録され、アプリにはまだデータベース接続が機能しています。log4jConfigLocation

hibernate.show_sql問題は、に設定されていても、Hibernateが何もログに記録しないことtrueです。なぜですか?log4j.xmlHibernateへのファイルへの新しいパスを指定する必要がありますか?はいの場合、どのように?

4

2 に答える 2

2

このVM引数を使用してサーバーを実行できます:-

-Dlog4j.configuration=/path/to/log4j.xml

特に必要がない限り、私は通常、log4j.xmlを推奨されるデフォルトの場所に配置する傾向があります...「設定より規約」は、他のピアが将来同じプロジェクトで作業する可能性がある場合は特に重要です。

于 2013-01-11T15:09:42.547 に答える
2

Log4jは、最初にシステムプロパティ「log4j.configuration」を調べて構成を探します。そのシステムプロパティが設定されていない場合は、クラスパスでlog4j.propertiesまたはlog4j.xmlファイルを検索します。

したがって、本当にsrc / main / resources / log / log4j.xmlにあるlog4j.xmlが必要な場合は、log4j構成システムのプロパティを設定する必要があります。これは基本的に、limcがvm引数として提供することによって行うことです。

また、limcが言うように、おそらくlog4j.xmlをデフォルトの場所に保持する必要があります。

于 2013-01-11T20:06:07.020 に答える