سؤال

ولدي تطبيق جافا اللي تبونه يعمل على جهازين في كتلة وأنها قاعدة بيانات الخلية كلا سجل واحد. كل شيء يعمل بشكل جيد، ولكن أود أن يكون حقل إضافي في قاعدة البيانات اللي تبونه يمثل 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؟ أو نائبا في log4j، كي أتمكن من تخزين IP في وجود من تطبيق جافا؟

وابتهاج، لوكاس

هل كانت مفيدة؟

المحلول

وأنا تحل هذه باستخدام سياق التشخيص المعينة من log4j. عند بدء تشغيل تطبيق جافا I تخزين IP مع هذا الأمر.

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

والآن يمكنني استخدام٪ من X {serverIP} كعنصر نائب في ملف 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