tracemycode.netのようなものを Java 以外で知っている人はいますか?
Jiraにも似た機能があるようですが (キャプチャ フィードバックを参照)、同じではありません。
log4j/logback 統合の理想的なケース。
クラッシュ ログを送信するために必要なエンド ポイントとデータ構造がヘルプ セクションに明確に記載されているため、必要に応じて TraceMyCode を使用できます。
サーバー側のコードがログオン例外に出力されないのはなぜですか?
たとえばlog4jを使用していますか?これを行うためにサードパーティのソフトウェアを必要とする必要はないようです.tracemycodeがどのようにお金を稼ぐのかわかりません.
編集:
ローカル アプリから作成された例外を読み取る方法が必要であることは理解できたと思います。ネットワーク通信によって例外が発生し、無限再帰が発生する可能性があるため、これは少し危険ですが、これらの例外をレポートから除外する限り、問題はありません。
これは簡単に構築できます。必要なのは、ログをサーバーに送信するために例外で呼び出すヘルパー クラスを生成することだけです。
public class ExceptionReporter {
public static int sendReport(String aData)
try {
byte[] myData = aData.getBytes();
/* Uploading the data */
URL myURL = new URL(CONSTANTS.CentralURL);
HttpURLConnection myConnection = (HttpURLConnection) myURL.openConnection();
myConnection.setDoOutput(true);
myConnection.setUseCaches(false);
myConnection.setDefaultUseCaches(false);
myConnection.setRequestProperty("Content-type", "application/octet-stream");
OutputStream myOutputStream = myConnection.getOutputStream();
myOutputStream.write(myData);
myOutputStream.flush();
myOutputStream.close();
int status = ((HttpURLConnection) myConnection).getResponseCode();
}
catch (Exception e) {
LocalLog.log(e.toString());
}
}
次に、すべてのサーバーコード/アプリコードで使用できます
try{
// ...do stuff
}
catch (Exception e){
ExceptionReporter.sendReport(e.getMessage());
}
次に、中央サーバーがこれらの http 接続を取り込み、送信されたデータをデータベースまたはその他のスレッドセーフ ソリューションに保存します。