5

Logback の DBAppender は、コンテキスト内のすべてのプロパティと MDC をデータベースに記録します。どのプロパティをログに記録するか、具体的には特定の値を除外するように制御したいのですが、そのためのオプションが見つかりません。ドキュメントは簡潔です:

logging_event_property は、MDC またはコンテキストに含まれるキーと値を格納するために使用されます

特定のプロパティをログから除外することはできますか?

次に例を示します。

Logback は、DBAppenderからプロパティをロードするで構成されvct.propertiesます。

<configuration>
    <property resource="vct.properties" />

    <appender name="DB" class="ch.qos.logback.classic.db.DBAppender">
        <connectionSource class="ch.qos.logback.core.db.DataSourceConnectionSource">
            <dataSource class="com.mchange.v2.c3p0.ComboPooledDataSource">
                <driverClass>com.mysql.jdbc.Driver</driverClass>
                <jdbcUrl>jdbc:mysql://${log.db.host}:${log.db.port}/${log.db.schema}</jdbcUrl>
                <user>${log.db.username}</user>
                <password>${log.db.password}</password>
            </dataSource>
        </connectionSource>
    </appender>

    <root level="DEBUG">
        <appender-ref ref="DB" />
    </root>
</configuration>

vct.properties接続設定があります:

log.db.host=localhost
log.db.port=3306
log.db.schema=logs_development
log.db.username=loguser
log.db.password=logpass

イベントがログに記録されると、すべての接続設定がログに記録されます。

mysql> select * from logging_event_property where event_id=1;
+----------+---------------------+-------------------------------------------+
| event_id | mapped_key          | mapped_value                              |
+----------+---------------------+-------------------------------------------+
|        1 | log.db.host         | localhost                                 | 
|        1 | log.db.password     | logpass                                   | 
|        1 | log.db.port         | 3306                                      | 
|        1 | log.db.schema       | logs_development                          | 
|        1 | log.db.username     | loguser                                   | 
+----------+---------------------+-------------------------------------------+
4

3 に答える 3

3

Logback は現在、この機能をサポートしていません。まだ行っていない場合は、この機能を要求するバグ レポートを入力してください。

于 2010-04-21T13:32:31.563 に答える
0

データベースに追加するエントリをフィルタリングする代わりに、ログバック dbappender データベースをコンソールに一覧表示する Java プログラムを作成しました。これは、フィルタリングもサポートしています。

https://github.com/Rockvole/db_logviewer

于 2015-11-11T00:21:54.007 に答える