![](/img/trans.png)
[英]How to use logstash-logger gem with lograge, Rails 5 API or Ruby
[英]Logstash-logger: Rails stacktrace splitting into multiple json lines
我正在使用 logstash-logger 来记录我的 Rails 日志。 它适用于大多数情况,但是当出现问题时(即;我收到错误)Rails 会生成堆栈跟踪。 但是记录器将其记录到多个 Json 行中。 我该如何解决这个问题?
我在这里附上一小部分日志
{"message":"开始 GET \\"/\\" ... }
{"message":" ", ... }
{"message":"ActionController::RoutingError (没有路由匹配 [GET] \\"/\\"):" ... }
{"message":"vendor/bundle/ruby/2 ... }
这是单个堆栈跟踪,但记录器将其记录为多个日志。
这是我的 logstash-logger 配置
logstash_logger = LogStashLogger.new(
type: :file,
path: "log/#{Rails.env}.log",
sync: true
)
if "#{Rails.env}" != "development"
config.logger = logstash_logger
end
自定义日志字段
默认情况下,LogStashLogger 将使用以下格式记录 JSON 对象。
{
"message":"Some Message",
"@timestamp":"2015-01-29T10:43:32.196-05:00",
"@version":"1",
"severity":"INFO",
"host":"hostname"
}
然后我读
Rails 集成
支持 Rails 4 和 5。
默认情况下,每条 Rails 日志消息都将以 LogStash::Event JSON 格式写入 logstash。
对于最小的、结构化的 logstash 事件,请尝试以下 gems 之一:
目前这些 gems 输出一个 JSON 字符串,然后 LogStashLogger 解析它。 这些 gem 的未来版本可能会与 LogStashLogger 进行更深入的集成(例如,通过直接编写 LogStash::Event 对象)。
您是否深入研究了本文档,因为他们故意为您提供了json
格式
要以多行的json
格式获取 rails 日志,您应该使用type: :json_lines
。
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.