How to sanitize log messages in Log4j to save them in database

前端 未结 9 1689
忘了有多久
忘了有多久 2021-01-01 05:03

I\'m trying to save log messages to a central database. In order to do this, I configured the following Appender in log4j\'s xml configuration:



        
9条回答
  •  南方客
    南方客 (楼主)
    2021-01-01 05:31

    Have a look at this non official Log4J JDBCAppender which fixes this issue and is distributed under the Apache 2.0 license. Quoting its features in comparision to org.apache.log4j.jdbc.JDBCAppender:

    • Log to (relational) database
    • Flexible connection handling (does not yet support DataSource)
    • Flexible sql commands to execute actual logging
    • Prepared Statements and Stored Procedures (J2SDK 1.4+) supported
    • Enables logging of messages with special characters such as ' (single quote) and , (comma)
    • Flexible table and column structure
    • Flexible id generation
    • Multiple PatternLayout applications allowed; in one or more columns
    • Supports J2SDK 1.3, 1.4 and 1.5
    • Supports Log4j 1.2.9 and current development

    Or, and you should seriously consider this option, switch from log4j to its successor, logback (this is where things happen) which has a DBAppender that uses PreparedStatement (see the sources), that can use a JNDI datasource, connection pooling (this is a big plus), etc. For more information about this appender, refer to the online manual http://logback.qos.ch/manual/appenders.html#DBAppender

提交回复
热议问题