我有一个Java应用程序至极两台机器上在集群上运行,他们都登录到一个MySQL数据库。一切工作正常,但我想在数据库至极的附加字段表示这个请求是来自该IP。结果 我解决了这个具有两种不同的log4j.properties文件,但我想有一个更好的方式来做到这一点?

这是在log4j.properties文件的行是不同的机器上:

log4j.appender.DB.sql=INSERT INTO log4j (date, category, priority, server, message) VALUES ('%d{dd MMM yyyy HH:mm:ss,SSS}','%c','%p','10.20.30.40','%m')

有什么像connection_ip MySQL的?或在log4j的一个占位符,这样我就可以在那里从Java应用程序存储的IP?

干杯,卢卡斯

有帮助吗?

解决方案

我使用的log4j的映射诊断上下文解决了这个。 当我启动Java应用程序I存储IP与此命令。

MDC.put("serverIP", InetAddress.getLocalHost().getHostAddress());

和现在我可以使用%X {服务器IP}如在我的log4j.properties文件的占位符。

log4j.appender.DB.sql=INSERT INTO log4j (date, category, priority, server, sessionID, message) VALUES ('%d{dd/MM/yyyy HH:mm:ss,SSS}','%c','%p','%X{serverIP}','%X{sessionID}','%m')

下面是关于log4j的一个极好的职位有几个很好的例子点击 http://onjava.com/pub/一个/ ONJava的/ 2002/08/07 / log4j.html?页= 3

许可以下: CC-BY-SA归因
不隶属于 StackOverflow
scroll top