Warning: file_get_contents(/data/phpspider/zhask/data//catemap/8/logging/2.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
将JSON从log4js发送到logstash和字段_Json_Logging_Logstash_Log4js Node - Fatal编程技术网

将JSON从log4js发送到logstash和字段

将JSON从log4js发送到logstash和字段,json,logging,logstash,log4js-node,Json,Logging,Logstash,Log4js Node,我正在使用来记录我的应用程序,我想将日志发送到logstash 以下是log4js的defalt appender: 下面是日志存储配置文件: input { udp { port => 5000 type => "json" } } filter { date { match => [ "timestamp" , "dd/MMM/yyyy:HH:mm:ss Z" ] } } output { stdout {} } 发送日志工

我正在使用来记录我的应用程序,我想将日志发送到logstash

以下是log4js的defalt appender:

下面是日志存储配置文件:

input {
  udp {
    port => 5000
    type => "json"
  }
}

filter {
  date {
    match => [ "timestamp" , "dd/MMM/yyyy:HH:mm:ss Z" ]
  }
}

output {
  stdout {}
}
发送日志工作正常,但我正在发送JSON日志,在logstash中,我看到JSON的每个字符都有一个字段

2016-07-01T10:29:36.161Z 127.0.0.1 {“@version”:“1”,“时间戳”:“2016-07-01T10:29:36.160Z”,“消息”:“我的” 消息…,“字段”:{“0”:“{”,“1”:“\n”,“2”:”,“3”:”,“4”:“\”


我不熟悉logstash,但我喜欢将所有字段分组为一个大字符串。我如何才能做到这一点?

为了让您的输入知道它是json,您需要在其中添加一个编解码器:

input {
  udp {
    port => 5000
    type => "json"
    codec => "json"
  }
}
问候,


Artur

您可能需要在udp中使用codec=>“json”来告诉它传入的日志是json日志。默认为plain@pandaadb好的,谢谢,如果你能添加它作为答案,我会检查它是否被接受,否则我会删除这个问题
input {
  udp {
    port => 5000
    type => "json"
    codec => "json"
  }
}