我正在关注此Fluentd post以设置带有Rails的Fluentd的工作版本。我的fluent-logger.yml
:
development:
fluent_host: "localhost"
fluent_port: 24224
tag: "foo"
messages_type: "string"
application.rb
:
config.log_level = :info
config.logger = ActFluentLoggerRails::Logger.new
config.lograge.enabled = true
config.lograge.formatter = Lograge::Formatters::Json.new
我的td-agent.conf
指令如下所示:
<source>
type forward
port 24224
</source>
<match foo>
type stdout
</match>
当我启动rails服务器时,我没有看到任何日志消息被传送到td-agent.log。我正在使用act-fluent-logger-rails gem。
但是,当我在rails控制台中使用fluent-logger gem并执行这些命令时:
require 'fluent-logger'
Fluent::Logger::FluentLogger.open(nil, :host=>'localhost',:port=>24224)
Fluent::Logger.post("fluentd.test.follow",{"from"=>"A","to"=>"B"})
我能够看到STDOUT填充了我发送的消息。我在这里错在哪里,在应用程序中运行它?对此有所了解会很棒! TIA。
答案 0 :(得分:0)
也许您的Rails应用是一个API。在这种情况下,您可能需要设置config.lograge.base_controller_class = 'ActionController::API'
。