logging-log4j-dev mailing list archives

Site index · List index
Message view « Date » · « Thread »
Top « Date » · « Thread »
From Tihomir Meščić (JIRA) <j...@apache.org>
Subject [jira] [Created] (LOG4J2-424) JDBCAppender: Add support for data types other then String
Date Mon, 14 Oct 2013 09:19:44 GMT
Tihomir Meščić created LOG4J2-424:

             Summary: JDBCAppender: Add support for data types other then String
                 Key: LOG4J2-424
                 URL: https://issues.apache.org/jira/browse/LOG4J2-424
             Project: Log4j 2
          Issue Type: Improvement
          Components: Appenders
    Affects Versions: 2.0-beta9
         Environment: All
            Reporter: Tihomir Meščić

I am using the JDBCAppender to log to a Postgresql database. I have a table (log_entries)
that's used for logging purposes. 
One of the attributes is of type INTEGER. The attribute is something specific for our application
and we are using ThreadContext (MDC) to set the value of the parameter.

Currently, log4j provides no support for integer type attributes in the Column element of
the JDBC appender configuration (the only types supported are string (default), timestamp
- isEventTimestamp flag and Clob - isClob flag).

When using the default settings in the Column element of the JDBC appender, log4j will create
a prepared statement and try to set the value using the Statement.setString() method. Of course,
the JDBC driver throws an exception:

Caused by: org.postgresql.util.PSQLException: ERROR: column "mn_type_d" is of type integer
but expression is of type character varying
  Hint: You will need to rewrite or cast the expression.

My appender configuration:

    <JDBC name="jdbcAppender" tableName="log_entries">
      <DriverManager url="jdbc:postgresql://" username="xxx" password="xxx"
      <Column name="log_entries_id" literal="nextval('hibernate_sequence')" />
      <Column name="message" isUnicode="false" pattern="%message" />

      <Column name="mn_type_d" isUnicode="false" pattern="%X{mn_type_d}" /> <-- this
is of type integer in the DB but LOG4J tries to insert it as a String  -->

This message was sent by Atlassian JIRA

To unsubscribe, e-mail: log4j-dev-unsubscribe@logging.apache.org
For additional commands, e-mail: log4j-dev-help@logging.apache.org

View raw message