Search code examples
logback

How can I set a pattern in a DBAppender?


I using logback and put a pettern into a dbappender, but it doesn´t work.

    <appender name="DB" class="ch.qos.logback.classic.db.DBAppender">
    <connectionSource
        class="ch.qos.logback.core.db.DriverManagerConnectionSource">
        <driverClass>net.sourceforge.jtds.jdbc.Driver</driverClass>
        <url>jdbc:jtds:sqlserver://xxx.xxx.xxx.xx:1433/granica</url>
        <user>java</user>
        <password>java</password>
    </connectionSource>
    <encoder>
        <pattern>%d{HH:mm:ss.SSS} - %msg%n</pattern>
    </encoder>
</appender> 

someone know how to fix that? thanks in advance!


Solution

  • You can't put a pattern in a DBAppender:

    "The DBAppender inserts logging events into three database tables in a format independent of the Java programming language.

    *These three tables are logging_event, logging_event_property and logging_event_exception. They must exist before DBAppender can be used. Logback ships with SQL scripts that will create the tables."*

    Alternative solution: If you realy need this pattern, then you should create an extra dataBbase table/view/sql that generaties that output for you, based on the existing tables. This can be done with a simple SQL, View or Triggers. Use standard SQL to create the output you need.

    Good luck!