python-logstashのドキュメントを読んでから、「余分な」フィールドを参照し、「logstashメッセージに余分なフィールドを追加する」と言います。その後、
# add extra field to logstash message
extra = {
'test_string': 'python version: ' + repr(sys.version_info),
'test_boolean': True,
'test_dict': {'a': 1, 'b': 'c'},
'test_float': 1.23,
'test_integer': 123,
'test_list': [1, 2, '3'],
}
test_logger.info('python-logstash: test extra fields', extra=extra)
そして、あなたはこのようなlogstash入力ブロック内の「JSON」コーデックを持っていることを確認してください。
input {
udp {
port => 5959
codec => json
}
}
EDIT: 私はサンプルスクリプトでこれをテストして、次のLogstashを取得出力:
{
"host" => "xxx",
"path" => "pylog.py",
"test_float" => 1.23,
"type" => "logstash",
"tags" => [],
"test_list" => [
[0] 1,
[1] 2,
[2] "3"
],
"test_boolean" => true,
"level" => "INFO",
"stack_info" => nil,
"message" => "python-logstash: test extra fields",
"@timestamp" => "2016-09-25T15:23:58.259Z",
"test_dict" => {
"a" => 1,
"b" => "c"
},
"test_string" => "python version: sys.version_info(major=3, minor=5, micro=1, releaselevel='final', serial=0)",
"@version" => "1",
"test_integer" => 123,
"logger_name" => "python-logstash-logger"
}
追加されたすべての追加フィールドは、メッセージフィールドと同じレベルで表示されます。それらは 'メッセージ'内部オブジェクトに追加されません。
いいえ、 'メッセージ'内部オブジェクトに追加されます。 – TunaSalad
私はそれを「メッセージ」のようなフィールドにしたい。 – TunaSalad
私の記事を「余分な」フィールドの例で更新しました。余分なフィールドは 'message'内部オブジェクトに追加されません。彼らは自分のフィールドです。 – fylie