我尝试通过流利的方式设置发送Rails日志到收集器。我使用了act-fluent-logger-rails,lograge和fluent-plugin-parser gems。当我浏览我的网站时,GET和POST请求会得到匹配,解析,标记并正确地发送到收集器,但是我无法通过Rails.logger在请求期间记录任何内容,因为陈述没有标签。
例如,在应用程序的rails控制台中:
irb(main):003:0> logger.info("Test")
在我的td-agent.log中产生以下结果:
2016-05-23 20:01:45 +0000 [warn]: pattern not match with data 'Test'
2016-05-23 20:01:45 +0000 fluent.warn: {"message":"pattern not match with data 'Test'"}
相关配置:
/etc/td-agent/td-agent.conf
<match tv.app>
@type forward
# primary host
<server>
host 10.0.0.0
port 24224
</server>
flush_interval 60s
</match>
<match rails.app>
@type parser
key_name messages
format json
tag tv.app
</match>
配置/ application.rb中
config.logger = ActFluentLoggerRails::Logger.
new(settings: {
host: '127.0.0.1',
port: 24224,
tag: 'rails.app',
messages_type: 'string'
})
config.lograge.enabled = true
config.lograge.formatter = Lograge::Formatters::Json.new
任何人都有任何想法,我做错了吗?
答案 0 :(得分:0)
你将lograge formatter设置为JSON,你的fluentd.conf也指定了JSON。 但是,来自控制台的代码是一个字符串。
你试过吗
{{1}}