Ruby on rails 在单个Graylog2消息中聚合多个记录器调用
我目前正在设置我的Rails(目前是3.2,不过它在开发分支的4.1下运行)应用程序,使用和gems将其日志发送到集中式Graylog2日志聚合服务器。配置(在环境文件中)如下所示:Ruby on rails 在单个Graylog2消息中聚合多个记录器调用,ruby-on-rails,logging,multiline,graylog2,Ruby On Rails,Logging,Multiline,Graylog2,我目前正在设置我的Rails(目前是3.2,不过它在开发分支的4.1下运行)应用程序,使用和gems将其日志发送到集中式Graylog2日志聚合服务器。配置(在环境文件中)如下所示: config.lograge.enabled = true config.lograge.log_format = :graylog2 config.logger = GELF::Logger.new("log1.example.com", 12201, "WAN", { :host => "dev", :f
config.lograge.enabled = true
config.lograge.log_format = :graylog2
config.logger = GELF::Logger.new("log1.example.com", 12201, "WAN", { :host => "dev", :facility => "rails" })
这一切对于与每个请求相关联的“main”200ok日志消息都非常有用。问题是我的控制器代码有其他logger.info、logger.warn等。。。分散在代码库中。这些消息中的每一条都记录为单独的GELF消息info GRYLOG2
我希望看到的是,单个HTTP请求的所有日志消息都被捆绑到Graylog2中的单个日志消息中,而不是让一大堆孤立的日志消息与其关联的HTTP请求断开连接。换句话说,每个HTTP请求的lograge输出,加上所有logger.*调用,应该一起形成一个graylog2可以管理的日志行
我错过了什么?这似乎不是一个不寻常的需求,但我没有看到任何不涉及我编写另一个自定义记录器的内容。我建议为每个应聚合的日志行添加每个请求的相关ID。稍后执行搜索,如
关联\u id:550e8400-e29b-41d4-a716-446655440000
,并查看所有相关消息
(您可以通过单击Graylog2 web界面中的值来执行搜索)