Ola amigos
Estou com um problema na hora de gravar logs em um BD com o log4j o problema é que preciso inserir o ID do usuario q é um Integer no banco e simplesmente nao insere
metodo q gera o logprivate static Logger logger = Logger.getLogger("logger");
public static void log(String msg, String ip, String browser Integer user) {
if (logger.isInfoEnabled()) {
MDC.put("user", user);
MDC.put("ip", ip);
MDC.put("browser", browser);
logger.info(msg);
}
}
log4j.rootCategory= POSTGRES
log4j.appender.POSTGRES = org.apache.log4j.jdbc.JDBCAppender
log4j.appender.POSTGRES.layout=org.apache.log4j.PatternLayout
log4j.appender.POSTGRES.driver = org.postgresql.Driver
log4j.appender.POSTGRES.user = postgres
log4j.appender.POSTGRES.password = postgres
log4j.appender.POSTGRES.URL = jdbc:postgresql://localhost:5432/banco
log4j.appender.POSTGRES.sql = INSERT INTO LOGS(usuario, nivel, mensagem, data, browser, ip)
VALUES('%X{user}', '%p', '%m', '%d{dd-MM-yyyy HH:mm:ss.SSS}', '%X{browser}', '%X{ip}')
log4j.threshold=INFO
log4j:ERROR Failed to excute sql
org.postgresql.util.PSQLException: ERRO: sintaxe de entrada é inválida para integer: ""
ERRO: erro de sintaxe em ou próximo a ","
ja tentei fazer um cast dentro do sql
CAST'%X{user}' as int
mas nada resumindo como eu insiro um Integer num sql do log4j pois preciso desse int por ele ser um FK no banco de dados
Obrigado