質問
のlog4jのネットワークアダプターに送信イベントとしてserialised javaオブジェクトです。すればよいのでしょうかを識別することができ、このオブジェクトとdeserialiseでの言語学習に役立つツール(python).可能ですか?
注意 ネットワーク撮影が容易なものでただ、TCPソケットでの読書、ストリームです。困難なことは、deserialising部
解決
一般的に,no.
ストリームの形式はJavaの直列化を定義して この文書, が必要なアクセス元のクラス定義です(およびJava実行時の負荷として)のストリームデータに戻すだろう、元のオブジェクト。例えば、授業を設定してwriteObjectとreadObject()メソッドカスタマイズ自身の直列化された形式です。
(編集: lubos haskoことを示唆を少しjavaプログラムに直列化復元のオブジェクトの前にPythonが、問題はこの仕事は、"ちょっとjavaプログラム"のニーズへの負荷を同じバージョンのすべて同じクラスでも取り上げられるもので直列化復元).であるトリッキーだ受信をログからのメッセージを一つのアプリは、本当に難しい多重化を一つ以上のログストリームです。なかなか出回らないのにならないほどのプログラムです。 edit2: をとることができると思いますか間違ったらどうなるかはわからないが直列化されます。だが、log4jの授業だきます。一方、ログインの任意の例外、およびそれを入れるストリームとしても自分が立っています。)
うや外観をカスタマイズのlog4jのネットワークアダプターに置き換えて原直列化がより簡単-直列化復元形(たとえば、利用可能XStreamのオブジェクトのXML表現)
他のヒント
理論的に, い、できます。直列化は、Javaのように、など様々な機能が詰まっているJavaland標準化しています。い え 実装デシリアライザによる標準エラーになります。しかし、Java直列化形式の設計にはなっておりませんの日英言語横断使用、直列化形式と密接に結びついての物体は表内のJVM.を実施JVM Pythonが確実に楽しい運動はあるんじゃないでしょうかいえんまりとした(-:
ありその他(データ)を直列化フォーマットのいくつかは、言語agnostic.彼らは通常動作による剥離のデータフォーマットは必要最小限の数文字列配列を辞書できませんどうしたらいいですか)ることが必要な仕事の両端を代表する豊富なオブジェクトのグラフとしてダムデータ構造の変動
その例として二つの JSON(JavaScript Object Notation) や YAML(YAMLゃないMarkup Language).
ASN.1(Abstract Syntax Notation) 別のデータを直列化形式です。の代わりにdumbing形式のダウンタでできることから、ASN.1は自己記述とを意味するために必要なすべての情報をデコードストリームで符号化された内のストリームそのものです。
もちろん、 XML(eXtensible Markup Language), で、仕事も提供するだけでなく提供に使用するテキスト表現の"メモリダンプ"のJavaオブジェクトが実際に抽象的、言語-agnosticエンコーディングです。
それで、長い話を短くすれば:あなたの最善の策はどちらかく強制log4jへのログインは上記の形式に置き換えlog4jとうはるみなんだか切片の送り返される前に、ワイヤーに変換してくJavaland.
図書館を実装するJSON、YAML ASN.1-XMLの両方に、Java、Python(毎年、建国記念のプログラミング言語知られています。
おすすめする、もしくは第三者フォーマット(自分でlog4jアダプタなど)と言語理解し、簡単に整理/unmarshalなど形式をサポートしています。
理論的には可能です。現在の難しさを実際にかか否かにかかってJava直列化形式が記載されています。んでいます。 編集: 恥っておもしろかったり、チャールズ.
とにかくこと"だと思っていることをお勧めしたい
捕獲からlog4j&直列化復元のJavaオブジェクトに自分のJavaプログラム。
現在のオブジェクト、serializeでの使用およびユーザーインターフェイスフォーマッタ.
ヒント: かな書およびユーザーインターフェイスフォーマッタ.例えば、 JSON(スクロールを下にlib) は図書館のためのPythonとJavaでも理論的には利用のJavaライブラリserialize物およびPython相当の図書館を直列化復元)します
送信出力ストリームへのpythonの応用および直列化復元)します
チャールズの書:
問題はこの 仕事には、"ちょっとjavaプログラム" ニーズへの負荷を同じバージョンのすべて 同じクラスでも取り上げられるもので 直列化復元).であるトリッキーだ 受信ログメッセージからアプリ ともトリッキーだ 多重化を一つ以上のログストリームです。なかなか出回らないのにならないとする プログラムも含ます。
できなだけ参考Java log4jの図書館に自分のjavaプロセス?私はと言いがいずれかに該当するペアの言語の名前の問題は言語agnosticんは、汎用のナレッジソリューション。とにかく、私は知らないlog4jとんできるかどうか"注"自分のシリアライザです。できれば、そのコースをご提案することにより、広い、清浄機。
どんなPythonの専門的なコメントをいかに解決するかが問題だってプログラムです。純使用IKVM.NET を直列化復元をJavaオブジェクトです。で実験を行いこれによります。純アLog4Jログメッセージに書き込まれのソケットアペンダでたんです。
誠に申し訳ございませんが、この答えは意味がありません。
だって、JVMの受信側のクラス定義のための直列化されたデータだけを利用したいPythonや他の言語を使用Jython:
- だ直列化復元には何を受けたときの正しいJava方法
- およびその過程で分かりにくいのPythonコード