프로덕션 서버 아래에 웹 응용 프로그램을 배포 할 예정입니다. 프로덕션 환경의 catch 블록에서 printStackTrace를 포함 할 수 있습니까? (catch 블록 아래의 로그가 오류의 정확한 원인을 알 수 없기 때문에) catch 블록 아래에서 printStackTrace를 사용하는 것이 적절한 지 알려주시겠습니까?java : 프로덕션 환경에서 printStackTrace 사용
예를 들어 잘못된 포트 번호를 지정하면 printStackTrace()가이 정보를 제공합니다.
의 printStackTrace() :
java.lang.IllegalArgumentException: port out of range:80800
at java.net.InetSocketAddress.<init>(InetSocketAddress.java:118)
at sun.net.NetworkClient.doConnect(NetworkClient.java:163)
at sun.net.www.http.HttpClient.openServer(HttpClient.java:395)
at sun.net.www.http.HttpClient.openServer(HttpClient.java:530)
at sun.net.www.http.HttpClient.<init>(HttpClient.java:234)
at sun.net.www.http.HttpClient.New(HttpClient.java:307)
at sun.net.www.http.HttpClient.New(HttpClient.java:324)
at sun.net.www.protocol.http.HttpURLConnection.getNewHttpClient(HttpURLConnection.java:970)
at sun.net.www.protocol.http.HttpURLConnection.plainConnect(HttpURLConnection.java:911)
at sun.net.www.protocol.http.HttpURLConnection.connect(HttpURLConnection.java:836)
at sun.net.www.protocol.http.HttpURLConnection.getOutputStream(HttpURLConnection.java:1014)
at com.tata.util.XmlClient.execute(HttpXmlClient.java:83)
로그 스타일 :
어디 로그이 (로깅 내가 사용하고 아파치 평민 로깅 메커니즘)
Log.write("**EXCEPTION INSIDE execute " + e, Log.INFO);
06/Jan/2012 16:25:55 - main:http-8080-2 <> <60990020>**EXCEPTION INSIDE execute java.lang.IllegalArgumentException: port out of range:80800
을 제공으로
catch 블록 아래에서 printStackTrace를 사용할 수 있는지 알려주시겠습니까?
감사합니다. 그래서이 코드에서이 방법으로 사용해야합니까 ?? catch (Exception e) {log.error (Object message, Throwable e)}; – Kiran
네, 그런 식으로 사용하십시오. 괜찮을 것입니다.로그에서 어떻게 보이는지 확인하고 필요한 사항을 확인하십시오. Log4j 설정을 사용하여 로그 메시지의 형식을 변경할 수 있습니다. http://www.allapplabs.com/log4j/log4j_layouts.htm –