2

Jboss 7.1 の log4j クイックスタートを出発点として、Java EE 6 アプリケーションをセットアップしました。

私の主なpom.xmlの追加は次のとおりです。

<dependencyManagement>
        <dependencies>
            <!-- Define Log4j dependency and its version -->
            <dependency>
                <groupId>log4j</groupId>
                <artifactId>log4j</artifactId>
                <version>${log4j.version}</version>
            </dependency>
...
        </dependencies>
    </dependencyManagement>

<dependency>
            <groupId>log4j</groupId>
            <artifactId>log4j</artifactId>
            <scope>provided</scope>
        </dependency>

バージョンは 1.2.16 です。

今私はできる:

プライベート静的最終ロガー logger = Logger.getLogger(MacchinarioController.class);

期待どおりロガーを使用します。良い!

log4j.xml ファイルも .properties ファイルもありません。

ここで、 Hibernate に、実行中のすべての SQL ステートメントをコンソールに出力させたいと思います

この log4j.xml を作成し、src/main/resources ソース フォルダーに配置しました。

<?xml version="1.0" encoding="UTF-8" ?>
<!DOCTYPE log4j:configuration>

<log4j:configuration xmlns:log4j="http://jakarta.apache.org/log4j/">

    <appender name="console" class="org.apache.log4j.ConsoleAppender">
        <param name="Threshold" value="info"/>
        <param name="Target" value="System.out"/>
        <layout class="org.apache.log4j.PatternLayout">
            <param name="ConversionPattern" value="%d{ABSOLUTE} [%t] %-5p %c{1} - %m%n"/>
        </layout>
    </appender>

    <appender name="rolling-file" class="org.apache.log4j.RollingFileAppender">
        <param name="file" value="Program-Name.log"/>
        <param name="MaxFileSize" value="1000KB"/>
        <param name="MaxBackupIndex" value="4"/>
        <layout class="org.apache.log4j.PatternLayout">
            <param name="ConversionPattern" value="%d [%t] %-5p %l - %m%n"/>
        </layout>
    </appender>
    <logger name="org.hibernate">
        <level value="ALL" />
    </logger>

    <root>
        <priority value ="debug" />
        <appender-ref ref="console" />
        <appender-ref ref="rolling-file" />
    </root>
</log4j:configuration>

しかし、何も表示されません。どこが間違っていますか?

4

1 に答える 1

2

jboss-deployment-structure.xmlを使用して、サーバーバージョンのlog4jを除外していますか?

アプリケーションを最初から開始する場合、私は間違いなくlog4jを選択しません。私はJBossLoggingに偏っていますが、JBoss Logging、slf4j、またはlogbackはlog4jよりもはるかに優れています。

デフォルトでは、JBossAS7はJBossLogManagerでJBossLoggingを使用します。実際には、JBoss Loggingを使用することもできますが、どのログマネージャーでも機能します。

log4jを使用する場合は、log4j構成を使用しないでください。ロガー/カテゴリをロギングサブシステムに追加して、探している結果を確認します。

とはいえ、JBoss AS 7の次のリリースでは、log4j設定が検出され、期待どおりに機能します。変更はアップストリームにプッシュされました。

于 2012-05-25T14:55:14.627 に答える