Warning: file_get_contents(/data/phpspider/zhask/data//catemap/8/logging/2.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Ruby on rails 在单个Graylog2消息中聚合多个记录器调用_Ruby On Rails_Logging_Multiline_Graylog2 - Fatal编程技术网

Ruby on rails 在单个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

我目前正在设置我的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", :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界面中的值来执行搜索)