मैं अन्य चीज़ों के साथ एक जेबॉस सर्वर चला रहा हूं, एक जेएक्स-आरएस वेब सेवा (resteasy-2.3.6 का उपयोग करके। जेबॉस/ईएपी के साथ अंतिम बंडल)।निरस्त अजाक्स कॉल क्लाइंटएबॉर्ट अपवाद/टूटा हुआ पाइप सर्वर लॉग में देता है: कैच/दबाने के लिए कैसे?
एक क्लाइंट सर्वर के लिए एक कॉल रोकता है, Resteasy SynchronousDispatcher
(जाहिर है) नहीं प्रतिक्रिया वापस ग्राहक जो [SEVERE]
और [ERROR]
स्तर पर त्रुटियों की एक गुच्छा का कारण बनता है मेरी सर्वर लॉग में दिखाने के लिए भेज सकते हैं।
हालांकि, मैं इन्हें वास्तविक त्रुटियों के रूप में नहीं मानता, इसलिए मैं उन्हें देखना नहीं चाहता हूं। विशेष रूप से यह तब होता है जब सेवा सार्वजनिक उपयोग में हो जाएगी।
12:50:38,938 SEVERE [org.jboss.resteasy.core.SynchronousDispatcher] (http-localhost/127.0.0.1:8080-2) Failed executing GET /ajax/findPerson: org.jboss.resteasy.spi.WriterException: ClientAbortException: java.net.SocketException: Broken pipe
at org.jboss.resteasy.core.ServerResponse.writeTo(ServerResponse.java:262) [resteasy-jaxrs-2.3.6.Final-redhat-1.jar:2.3.6.Final-redhat-1]
....
Caused by: ClientAbortException: java.net.SocketException: Broken pipe
at org.apache.catalina.connector.OutputBuffer.realWriteBytes(OutputBuffer.java:403) [jbossweb-7.2.0.Final-redhat-1.jar:7.2.0.Final-redhat-1]
at org.apache.tomcat.util.buf.ByteChunk.append(ByteChunk.java:356) [jbossweb-7.2.0.Final-redhat-1.jar:7.2.0.Final-redhat-1]
at org.apache.catalina.connector.OutputBuffer.writeBytes(OutputBuffer.java:426) [jbossweb-7.2.0.Final-redhat-1.jar:7.2.0.Final-redhat-1]
at org.apache.catalina.connector.OutputBuffer.write(OutputBuffer.java:415) [jbossweb-7.2.0.Final-redhat-1.jar:7.2.0.Final-redhat-1]
...
Caused by: java.net.SocketException: Broken pipe
at java.net.SocketOutputStream.socketWrite0(Native Method) [rt.jar:1.7.0_51]
at java.net.SocketOutputStream.socketWrite(SocketOutputStream.java:113) [rt.jar:1.7.0_51]
at java.net.SocketOutputStream.write(SocketOutputStream.java:159) [rt.jar:1.7.0_51]
at org.apache.coyote.http11.InternalOutputBuffer.realWriteBytes(InternalOutputBuffer.java:711) [jbossweb-7.2.0.Final-redhat-1.jar:7.2.0.Final-redhat-1]
at org.apache.tomcat.util.buf.ByteChunk.flushBuffer(ByteChunk.java:450) [jbossweb-7.2.0.Final-redhat-1.jar:7.2.0.Final-redhat-1]
at org.apache.tomcat.util.buf.ByteChunk.append(ByteChunk.java:351) [jbossweb-7.2.0.Final-redhat-1.jar:7.2.0.Final-redhat-1]
...
12:50:38,942 ERROR [org.apache.catalina.core.ContainerBase.[jboss.web].[default-host].[/myapplication].[MyAjaxApplication]] (http-localhost/127.0.0.1:8080-2) JBWEB000236: Servlet.service() for servlet MyAjaxApplication threw exception: java.lang.IllegalStateException
at org.apache.catalina.connector.ResponseFacade.sendError(ResponseFacade.java:392) [jbossweb-7.2.0.Final-redhat-1.jar:7.2.0.Final-redhat-1]
at javax.servlet.http.HttpServletResponseWrapper.sendError(HttpServletResponseWrapper.java:152) [jboss-servlet-api_3.0_spec-1.0.2.Final-redhat-1.jar:1.0.2.Final-redhat-1]
...
वहाँ ऐसा करने के लिए एक सुंदर तरीका है:
यहाँ मैं दबाने के लिए चाहते लॉग उत्पादन है?
writing my ownExceptionMapper
करके मैं पहले एक ([SEVERE]
) रोकने के लिए और यह एक डिबग स्तर के एक पंक्ति का लॉग उत्पादन में बदल जाते हैं करने में कामयाब रहे, लेकिन दूसरा एक अभी भी वहाँ है। वाकई, मुझे नहीं पता कि कहां देखना शुरू करना है।
मैं एक में देखा है तो सवाल यह है कि I could just set the log level for one or both classes that throw the errors to a higher level, कहते हैं कि [FATAL]
, लेकिन मैं एक इस तरीके का उपयोग अधिक करने पर विचार करेंगे ...
विचार?
लेकिन फिर मुझे कोई भी आराम से लॉगिंग नहीं मिलेगी। यहां तक कि अपमानजनक वर्ग ("सिंक्रोनस डिस्पैचर") के स्तर पर, मैं चाहता हूं कि यह एक अपवाद दबाए, न कि उस वर्ग से सभी लॉग आउटपुट। – Antares42