Logback的DBAppender將其上下文中的所有屬性和MDC記錄到數據庫。我想控制記錄哪些屬性,特別是篩選出某些值,但我找不到任何選項來執行此操作。該文檔是簡潔:我可以防止logback的DBAppender記錄特定的屬性嗎?
的logging_event_property用於存儲包含在MDC鍵和值或上下文
是否有可能被記錄排除某些屬性?
下面是一個例子:
的logback配置有從vct.properties
加載其特性的DBAppender
:
<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 |
+----------+---------------------+-------------------------------------------+
謝謝。已記錄:http://jira.qos.ch/browse/LBCLASSIC-205 – curthipster 2010-04-27 05:23:45