如何使用Log4j2 JDBCAppender插入日期列?

时间:2013-07-25 13:23:02

标签: jdbc appender log4j2

我正在尝试使用Log4j2的JDBCAppender将值插入Oracle日期列。我知道如何使用isEventTimestamp,但我需要从ThreadContext插入一个日期。

我猜我没有正确格式化日期,但我找不到任何关于如何正确格式化的文档。

我如何格式化日期:

ThreadContext.put("DATE_VALUE", new Date().toString());

这是我正在使用的Log4j2 JDBCAppender Column元素:

<Column name="DATE_COLUMN" pattern="%X{DATE_VALUE}" />

这是我得到的错误:

2013-07-25 08:17:18,145 ERROR Failed to insert record for log event in
manager [jdbcManager{ description=XXXXXXXXX, bufferSize=5,
connectionSource=driverManager{ url=jdbc:oracle:thin:@//XXXXXXXXX,
username=XXXXXXXXX, passwordHash=XXXXXXXXX }, tableName=XXXXXXXXX,
columns=[ { name=DATE_COLUMN, layout=%X{DATE_VALUE}, literal=null,
timestamp=false } ] }]. java.sql.SQLDataException:
ORA-01858: a non-numeric character was found where a numeric was expected
at oracle.jdbc.driver.T4CTTIoer.processError(T4CTTIoer.java:445)
at oracle.jdbc.driver.T4CTTIoer.processError(T4CTTIoer.java:396)
at oracle.jdbc.driver.T4C8Oall.processError(T4C8Oall.java:879)
at oracle.jdbc.driver.T4CTTIfun.receive(T4CTTIfun.java:450)

任何建议?

0 个答案:

没有答案