[
https://issues.apache.org/jira/browse/LOG4J2-424?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel&focusedCommentId=15797245#comment-15797245
]
Matt Sicker edited comment on LOG4J2-424 at 1/4/17 5:44 AM:
------------------------------------------------------------
>From LOG4J2-1730, I added a ColumnMapping plugin for CassandraAppender. This
>plugin could probably be reused to implement this feature request.
The main update here would be using ColumnMapping instead of ColumnConfig, then
using {{PreparedStatement.setObject()}} instead of {{setString()}} to get JDBC
driver auto-conversion.
was (Author: jvz):
>From LOG4J2-1730, I added a ColumnMapping plugin for CassandraAppender. This
>plugin could probably be reused to implement this feature request.
> 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ć
> Assignee: Matt Sicker
>
> 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://10.28.10.32:5432/xxx"
> 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 -->
> </JDBC>
--
This message was sent by Atlassian JIRA
(v6.3.4#6332)
---------------------------------------------------------------------
To unsubscribe, e-mail: [email protected]
For additional commands, e-mail: [email protected]