Операторы Rails.logger не имеют плавных тегов.

Я пытаюсь настроить отправку журналов Rails сборщику через Fluent. Я использую драгоценные камни act-fluent-logger-rails, lograge и fluent-plugin-parser. Когда я просматриваю свой сайт, запросы GET и POST сопоставляются, анализируются, помечаются тегами и отправляются сборщику правильно, но я не могу получить ничего, что я регистрирую во время запроса через Rails.logger, для передачи fluentd, потому что операторы не нет тега.

Например, в консоли 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>

config/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

У кого-нибудь есть идеи, что я делаю неправильно?


person jlyles    schedule 23.05.2016    source источник
comment
Та же проблема. Кто-нибудь уже нашел решение?   -  person Shivam Bajpai    schedule 26.03.2020
comment
Извини. Я больше не работаю в компании, в которой работал над этой проблемой, и больше не работаю с этим типом установки, поэтому я понятия не имею, будут ли чьи-либо ответы правильными на данный момент.   -  person jlyles    schedule 02.04.2020


Ответы (1)


У вас есть средство форматирования lograge, установленное на JSON, и ваш fluentd.conf также указывает JSON. Однако ваш код из консоли представляет собой строку.

Ты пытался

logger.info({:test => true}.to_json)
person KevinF    schedule 05.07.2017