Log4j JDBCAppender具有自定义列值

时间:2017-02-14 07:32:32

标签: java log4j

我正在用Java构建数据分析Web应用程序。对于每一天,我从其他公司的项目中获取数据并进行一些处理。我通过独特的pid 识别每个项目。我尝试使用log4j向DB插入行时的问题:

INSERT INTO app_log(pid, date, level, class, message)

我只能在运行时获取 pid ,并且我的处理是多线程的。如果我以编程方式设置SQL子句:

props.put("log4j.appender.DB.sql", "INSERT INTO app_log(pid, date, level, class, message) VALUES('" + productId + "','%d{yyyy-MM-dd HH:mm:ss}', '%p', '%c', '%m')");

pid1 日志是否会被错误设置为 pid2 ,因为它们同时在运行?

我真正希望实现的是根据自己的 pid 将不同的日志存储到数据库中。

你能为我提供任何好的解决方案吗?

1 个答案:

答案 0 :(得分:0)

看起来好像MDC和ThreadContext会弄乱 pid ,所以我觉得用我的应用程序实现自己的DB Logger会更好。