3

私は現在、Javaスイングアプリケーションを実装しています。そのアプリケーションでは、java.util.logging を使用してテキスト ファイルにログを記録しました。しかし、ファイルが非常に大きいため、テキスト ファイルを調べるのは困難です。

だから私はロギング情報をOracleデータベース(アプリケーションに使用している)に保存し、そのテーブルにアクセスするためのswingインターフェースを提供することを考えています。そのため、そのテーブルで INFO や SEVERE などの特定のログ レベルを検索できます。Java util パッケージまたは Log4j を使用してそれを行う方法はありますか。助けてください

4

3 に答える 3

8

これらのアペンダーを見てみましょう:org.apache.log4j.jdbc.JDBCAppenderまたは改良版org.apache.log4j.jdbcplus.JDBCAppender.

于 2010-12-23T09:34:42.560 に答える
0

を拡張することで、独自の Appender を作成できますorg.apache.log4j.AppenderSkeleton。彼をいくつかのデータストレージ用に構成可能にし、行番号、クラス名、メッセージ、ロガー重大度などの分離された情報を取得できるLoggingEventを分割する方法を定義できます。

public class StorageBasedAppender
    extends AppenderSkeleton
{
    [...]

    @Override
    protected void append(LoggingEvent event)
    {
        // Write to your database or other storages
    }
}

このクラスを構成可能にするなどして、このクラスを強化できます。多少具体的な必要がない場合は、他の質問に関してJDBCAppenderConfigurationを使用してください。簡単に設定できるもの

<appender name="jdbcAppender" class="org.apache.log4j.jdbc.JDBCAppender"> 
    <param name="URL" value="jdbc:oracle:thin:@sd1.hbs.edu:1521:sc1" /> 
    <param name="Driver" value="oracle.jdbc.driver.OracleDriver" /> 
    <param name="User" value="user" /> 
    <param name="Password" value="password" /> 
    <layout class="org.apache.log4j.PatternLayout"> 
        <param name="ConversionPattern" 
          value="INSERT INTO LOGGING_SAMPLES_TEST 
          (log_date, log_level, location, message) 
          VALUES ( '%d{ISO8601}','%p', '%C;%L', '%m' )" 
        /> 
    </layout> 
</appender> 
于 2010-12-23T09:34:30.403 に答える
0

JDBC Log4j Appender を利用できます。

TutorialspointまたはApache Wikiを参照してください。

.properties と .xml のどちらを使用するかに応じて、構成を変更する必要がある場合があります。

于 2010-12-23T09:35:43.540 に答える