मैं एक स्टैंड-अलोन जावा एप्लिकेशन के भीतर एक एम्बेडेड जेएक्स-आरएस वेब सेवा चलाता हूं। मैं वेब कंटेनर के रूप में जेटी के साथ अपाचे सीएक्सएफ 3.3.0 का उपयोग करता हूं। मैं जेट्टी और सर्विस बीन्स दोनों को कॉन्फ़िगर करने के लिए स्प्रिंग का भी उपयोग करता हूं।

मेरा ऐप log4j2 का उपयोग करता है और मैं समस्या निवारण उद्देश्यों के लिए CXF कंटेनरों द्वारा प्राप्त URL को लॉग करने का प्रयास कर रहा हूं।

मैंने वेब सेवा इंटरफ़ेस में निम्नलिखित एनोटेशन जोड़ा:

@InInterceptors(interceptors = "org.apache.cxf.interceptor.LoggingInInterceptor")

चूंकि मैं जेट्टी का उपयोग करता हूं, सर्वलेट कंटेनर का नहीं, इसलिए यहां दिए गए निर्देश काम नहीं करते हैं: अपाचे सीएक्सएफ - जनरल सीएक्सएफ लॉगिंग

जब मैं ग्रहण में एप्लिकेशन चलाता हूं, तो यूआरएल कंसोल पर लाल रंग में प्रिंट होंगे। मैं stderr लॉग करने के लिए लाल रंग का उपयोग करता हूं।

लेकिन आउटपुट log4j लॉग फ़ाइल में मौजूद नहीं है और न ही आउटपुट को stderr या stdout को भेजा जाता है जब बैश का उपयोग करके इन डिस्क्रिप्टर को पुनर्निर्देशित किया जाता है:

1> ${LOG_DIR}/stdout.log \
2> ${LOG_DIR}/stderr.log &
0
Michael Starkie 12 जुलाई 2019, 18:50

1 उत्तर

सबसे बढ़िया उत्तर

मैं log4j2 के साथ org.apache.cxf.interceptor.LoggingInInterceptor का उपयोग करके REQUEST_URL को लॉग इन करने में सक्षम नहीं था।

मैं अपनी खुद की InInterceptor कक्षा बनाकर इसे बहुत आसानी से हल करने में सक्षम था।

निम्न वर्ग आने वाले REQUEST_URL को मेरे log4j2 परिशिष्टों में काफी अच्छी तरह से लॉग करता है:

public class RefDataInInterceptor extends AbstractPhaseInterceptor<Message> {
   private static final Logger log = 
      LogManager.getLogger(RefDataInInterceptor.class);

   public RefDataInInterceptor() {
      super(Phase.RECEIVE);
   }

   @Override
   public void handleMessage(Message msg) throws Fault {
      log.info(msg.getContextualProperty(Message.REQUEST_URL));
   }
}

मुझे इसे जोड़ने के लिए बस इतना करना था कि इसे बदल दिया जाए:

@InInterceptors(interceptors = "org.apache.cxf.interceptor.LoggingInInterceptor")

साथ में:

@InInterceptors(interceptors = "com.aqua.refdata.RefDataInInterceptor")

कंसोल और लॉग फ़ाइल में log4j2 आउटपुट यहां दिया गया है:

2019-07-12 16:13:54.811 [3710][qtp172794870-21][INFO http://localhost:9000/refdata/exec/getDBParam
eters [RefDataInInterceptor.java:19]
0
Michael Starkie 12 जुलाई 2019, 23:24