2016-09-15 1 views
0

私たちはlog4j 2サーバーを持っており、異なるアプリケーションがログを送信する必要があります。これまでは、Springアプリケーションしかなく、統合が組み込まれていました.Golangアプリケーションが実行されており、ログもそのサーバーに送信する必要があります。単純なメッセージをソケット経由で直接送信しようとしましたが、log4jサーバはそれらを受け取ることができません。Log4j 2 Go for

log4jサーバーには特定の形式が必要ですか?クライアント側でエラーが発生することはありません。 Goのような別の言語からログをlog4jサーバーに送る方法は不思議です。

答えて

1

log4jサーバーには特定の形式が必要ですか?

はい、もちろんです。

あなたがSocketAppenderのJavadocを読めば、あなたは見つけることができます:

SocketAppendersは、レイアウトを使用しないでください。彼らはLoggingEventオブジェクトをサーバー側に発送します。

したがって、Javaシリアル化オブジェクトの形式でソケットパケットを書き込むためにGoコードを実装しない限り、他の種類のログサーバーを使用することを検討する必要があります。 syslog

+0

あなたは、ログメッセージをGoのLogginEventオブジェクトに変換し、それをjsonのようにしてシリアル化してからサーバーに送信する必要があることを意味しますか? –

+0

@JFreebirdいいえ、JSONではありません。これは、Javaのシリアル化で使用される独自のバイナリ形式でシリアル化されています。 – Andreas

+0

どのような独自のバイナリ形式ですか?シンプルなJavaコードの例はありますか?どうもありがとう。 –

関連する問題