私はプロダクションサーバーの下にWebアプリケーションをデプロイします。 実稼働環境のキャッチブロックの下にprintStackTraceを含めることはできますか? (キャッチブロックのログがエラーの正確な原因を知るのに役立たないため) キャッチブロックの下に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)
ログのスタイル:
、ログが(私はApacheのコモンズにログインするためのログメカニズムを使用しています)
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(例外e){log.error(オブジェクトメッセージ、Throwable e)}; – Kiran
うん、それを使用して、それは大丈夫です。ログにどのように表示されているかを確認し、必要なものを確認します。 Log4j設定を使用して、ログメッセージのフォーマットを変更することができます。http://www.allapplabs.com/log4j/log4j_layouts.htm –