我正在用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 将不同的日志存储到数据库中。
你能为我提供任何好的解决方案吗?
答案 0 :(得分:0)
看起来好像MDC和ThreadContext会弄乱 pid ,所以我觉得用我的应用程序实现自己的DB Logger会更好。