Rails.logger语句没有流畅的标签

时间:2016-05-23 20:19:16

标签: ruby-on-rails ruby logging fluentd

我尝试通过流利的方式设置发送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

任何人都有任何想法,我做错了吗?

1 个答案:

答案 0 :(得分:0)

你将lograge formatter设置为JSON,你的fluentd.conf也指定了JSON。 但是,来自控制台的代码是一个字符串。

你试过吗

{{1}}