2017-11-23 5 views
3

私はこの質問がStack Overflowの領域外にあることを知っていますが、私は何も見つけていないので、間違ったことを探しているのでしょうか。JavaFXアプリケーションまたはJavaアプリケーションのエラーを報告する

私はJavaFXアプリケーションを開発しましたが、クラッシュするか予期しない例外が発生するのを追跡しようとしています。私はWebアプリケーションのためにこれを行うためのサービスとライブラリが無数にあることを知っています.Netアプリケーションのための1つまたは2つのことも認識していますが、JavaFXの有望な解決法を見つけることができません。

私が見つけた:

  • CrashFXnot getting much developmentだようだ、それは私が避けることができれば、私はむしろないと思いますこれは、me hosting the serverが必要です。
  • Crashlytics:それはそこにエラートラッカーの多くは、などの歩哨、ロールバー、として、そこに世界であるが、それらのすべてがどのサーバアプリケーション用に設計されたように見えるだけのAndroidのための、ないのJavaFX

のためですクライアントアプリケーションとは異なります。

たとえば、サーバーアプリケーションでは、例外を報告するキャッチオールハンドラに各リクエストをラップするのは非常に簡単です。クライアントアプリケーションはスレッドを生成し、各スレッドはそれ自身のハンドラを必要とします。アプリケーション全体がクラッシュする可能性があります(実際には、何かが間違っている場合は、アプリを間違った状態にするのではなく、完全にクラッシュするのが正しい方法です)。その時点で、いくつかのフィードバックを求めて、サーバーにレポートを送信するポップアップが表示されます。

.NETの手でこれを行う例:https://stevenbenner.com/2010/01/reporting-of-unhandled-exceptions-in-your-distributable-net-application/

+2

です。あなたがクラッシュすると、あなたはシステム障害または未処理の例外のためにあなたのアプリケーションの失敗を参照していますか?あなたのコードが安全であるということは、すべての例外(ランタイム)を処理していることを意味し、実際のエラーと時間をログに通知/保存するログメカニズムが必要です。私があなたを正しく理解できない場合は、私に知らせてください。 – JKostikiadis

+0

@JKostikiadis:クラッシュや例外は、結局のところ、Javaのクラッシュは処理されていない例外です(JVM自体がクラッシュする心配はありません)。私がすべての例外をキャッチしてログに記録するか、バブルを上げて何らかのラッパーログを記録するかどうかは、いずれの方法でも可能です(実際には、これらの2つのシナリオが混在する可能性があります)。 – Pablo

+0

自分自身をJavaFXに限定する必要はありません。必要なのはJava互換のSDKだけです。あなたは[Sentry](https://sentry.io/for/java/)を見たことがありますか? – beatngu13

答えて

-1

私の意見では、アプリケーション開発の最も重要な側面の一つは、スケーラビリティです。これを実現する1つの方法は、実行時にアプリケーションの動作を追跡する方法を見つけることです。私が振る舞いについて話すときには、失敗(ランタイム例外)、パフォーマンス統計、さらにはメモリリークを含め、アプリケーションがタスクを実行するために必要とするほとんどすべてのアクションを意味します。したがって、Javaは、使用できる簡単なログ機構java.util.loggingarticle)を提供します。もちろん、Log4j、Logbackのような他のロギングAPIもありますし、独自のロガーを作成することもできます(私は推奨しません。あなたが頭を上げるために読むことができる良い記事は、Java Logging Basics

+0

別のマシンで実行中の数千のインスタンスからのログを集計する方法がない限り、どのように役立つのか分かりません。 – Pablo

+0

ログのメカニズムは、クライアントとサーバーの両方で実装できます。クライアント側では、アクセスするためにログファイル(エラーレポート)を送信し、問題をデバッグするように要求するレポートメカニズムを作成する必要があります。サーバー側では、あなたが想像しているように、作業ははるかに簡単です。 – JKostikiadis

+0

サーバ側が分散されている場合(複数のサーバやクラスタの場合など)、ログファイルにアクセスするためには、それらの間で通信を作成する必要があります。 – JKostikiadis

関連する問題