Javaフロントエンドでパフォーマンスが非常に重要なFortranライブラリを使用してデスクトップアプリを構築しています。最近、Java =およびFortranへ(以下を参照)
間もなく、SCALA(akka.ioまたはJPPFの分散コンピューティングシステムを使用)にモジュールが追加される可能性があります。
正しく、統合され、適切にフォーマットされたログを確保するために何ができるのか疑問に思っています。現在、かなり広範囲にわたるJavaフロントエンドは_Java.util.logging
_(JUL)を使用しています。多くの方も扱ったことがあると思いますが、ロガー構成のブートストラップはすでに多くなっています。私が望むよりも複雑なプロセスであり、自動テストが欠けています。
私たちのFortranバイナリは、Intel Fortranライブラリのデフォルトの動作に従って、コードがデプロイされたときに単に忘れられてしまうものを標準出力につぶやくことがあります。 JUL logger.log()
呼び出しとほぼ同じ形式で表示されるようにしたいと思います。
非JULおよび/または非JVMコードによって発行された警告/エラーをキャプチャし、それを適切にフォーマットされた1つのファイルにまとめるために、ポリグロットロギングをどのように回避しますか。
re:Fortran?本当に!?
私は特にJULに慣れていませんが、ArjenMarkusのflibsパッケージのm_multilog
モジュールを使用してかなりの成功を収めています http://flibs.sourceforge.net/m_multilog.html I syslog
スタイルの重大度クラスを使用するように変更しました。結果は、タイムスタンプ、重大度クラス、およびログメッセージ本文に解析するのがかなり簡単です。
レイテンシーが大きな問題ではない場合は、ファイルにログインして定期的にメインのログ処理システムに読み込むのがおそらく最も簡単です。そうでない場合、「ライブ」ロギングが必要な場合は、を介して外部ロギングライブラリへのリンクがスタックする可能性があります。 iso_c_bindings
メカニズム。
いずれにせよ、flibsはBSDライセンスの形でリリースされていると思います。 m_multilogモジュールをクローバーして、ログプロセッサが理解できるログを書き込むことができるはずです。 Fortran用の標準ライブラリが事実上ないことを吸います。ロギング、CSV/JSON/XMLサポート、入力処理用の正規表現ライブラリなどの基本的な機能を実際に使用できます。