Hello, I am using the JDBCAppender:
{ "type" : "Jdbc", "name" : "MyDatabaseAppender", "tableName" : "LOGS", "ignoreExceptions" : "false", "ConnectionFactory" : { "class" : "test.ConnectionFactory", "method" : "getDatabaseAppenderDataSource" }, "Column" : [ { "name" : "ID", "pattern" : "%X{ID}", "isUnicode" : "false" }, { "name" : "NUM", "pattern" : "%X{NUM}", "isUnicode" : "false" } ] } As you can see, I am using the ThreadContext to pass the variables. ThreadContext.put("ID", id++); ThreadContext.put("NUM", "41"); The NUM column is of type BIGINT, and is nullable. I am trying to set it to NULL with: ThreadContext.put("NUM", "NULL"); or ThreadContext.put("NUM", null); or ThreadContext.put("NUM", ""); Every time I get Caused by: org.apache.derby.client.am.SqlException: Error for batch element #0: Invalid character string format for type BIGINT. at org.apache.derby.client.am.Statement.completeExecute(Unknown Source) I believe this is because, in org.apache.logging.log4j.core.appender.db.jdbc.JdbcDatabaseManager.writeInternal() we always do this.statement.setString(i++, column.layout.toSerializable(event)); So we always end up feeding the String "" or "NULL" to the statement. Is there anything I can do to alter this behavior? Thanks