0

スタンドアロンアプリケーションでSpringとHibernateを使用しています。以下に表示されているように、コンソールにロガーメッセージを表示する必要があります...

2011-02-10 12:24:17 DriverManagerDataSource [INFO] Loaded JDBC driver: org.h2.Driver
2011-02-10 12:24:17 JdbcTemplate [DEBUG] Executing SQL statement [SELECT 1]
2011-02-10 12:24:17 DataSourceUtils [DEBUG] Fetching JDBC Connection from DataSource
2011-02-10 12:24:17 DriverManagerDataSource [DEBUG] Creating new JDBC DriverManager Connection to [jdbc:h2:/data/h2/testa]
2011-02-10 12:24:17 DataSourceUtils [DEBUG] Returning JDBC Connection to DataSource
2011-02-10 12:24:17 JdbcTemplate [DEBUG] Executing SQL statement [SELECT 1]
2011-02-10 12:24:17 DataSourceUtils [DEBUG] Fetching JDBC Connection from DataSource
2011-02-10 12:24:17 DriverManagerDataSource [DEBUG] Creating new JDBC DriverManager Connection to [jdbc:h2:/data/h2/testa]
2011-02-10 12:24:17 DataSourceUtils [DEBUG] Returning JDBC Connection to DataSource

log4jプロパティファイルがあります。上記のようにコンソールを表示するには、どのプロパティを設定する必要がありますか?

ありがとう!

4

3 に答える 3

3

コンソールアペンダーを定義する必要があります。

<appender name="CONSOLE" class="org.apache.log4j.ConsoleAppender">
    <layout class="org.apache.log4j.PatternLayout">
        <param name="ConversionPattern" value="%-12d{HH:mm:ss,SSS} - %p - %C{1}.%M(%-3L) | %m%n" />
    </layout>
</appender>

そして、それをルートに追加します。

<root>
    <appender-ref ref="CONSOLE" />
</root>
于 2012-07-16T08:37:16.867 に答える
0

以下に、log4j 構成の例を示します。

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

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

    <!-- Appenders -->
    <appender name="console" class="org.apache.log4j.ConsoleAppender">
        <param name="Target" value="System.out" />
        <layout class="org.apache.log4j.PatternLayout">
            <param name="ConversionPattern" value="%d %-5p [%t] %c (%L) - %m%n" />
        </layout>
    </appender>

    <logger name="com.opensymphony.xwork2">
        <level value="error" />
    </logger>

    <!-- Root Logger -->
    <root>
        <priority value="info" />
        <appender-ref ref="console" />
    </root>

</log4j:configuration>

次に、ロギングが必要なクラスで、次のようにロガーを宣言する必要があります。

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

そして、あなたは次のようなことをします

logger.debug("こんにちは");

プログラムの実行時にログにこれが表示されるはずです

于 2012-07-16T08:40:15.543 に答える
0

コメントから、アペンダー、つまりstdoutが1つしかないように見えます。コンソールに表示するように要求したため、以下のようにパッケージ定義でそのアペンダーに言及する必要があります。

log4j.log4j.rootLogger=DEBUG, stdout
log4j.logger.org.hibernate=DEBUG, stdout   
log4j.logger.org.springframework=DEBUG, stdout    
log4j.logger.org.apache.axis=DEBUG, stdout    
log4j.appender.stdout=org.apache‌​.log4j.ConsoleAppender    
log4j.appender.stdout.threshold=DEBUG     
log4j.appender.stdout.layout=org.apache.log4j.PatternLayout    
log4j.appender.stdout.layout.ConversionPattern=%d %p [%c] - %m%n 

DEBUG レベルで利用可能な「org.hibernate」、「org.springframework」、「org.apache.axis」パッケージからログを出力します。

注: spring/hibernate から特定のパッケージのログのみをキャプチャする場合は、以下のようにアペンダーを使用してそのパッケージに言及できます。

log4j.logger.org.springframework.transaction=DEBUG, stdout
于 2012-07-16T09:17:39.980 に答える