Я просто читал GELF spec, поскольку я интегрирую его в нашу систему. Мне просто было интересно, может ли дополнительное / настраиваемое поле содержать объект JSON, поскольку в спецификации это не упоминается:
Таким образом, мой вывод GELF (в частности, поле _request ниже) будет выглядеть примерно так:
{
"version": "1.0",
"host": "www1",
"short_message": "Short message",
"full_message": "Backtrace here\n\nmore stuff",
"timestamp": 1291899928,
"level": 1,
"facility": "payment-backend",
"file": "/var/www/somefile.rb",
"line": 356,
"_request": {
"ip": "123.123.123.123",
"url": "example.com/dir/file.ext",
"method": "get",
"referer" "example.net"
}
В настоящее время GELF не поддерживает вложенные объекты JSON, однако, если кому-то интересно, прокомментируйте на groups.google.com/forum/#!topic/graylog2/Xg3v3Qh8fmo.
Думаю, таких вложенных структур лучше избегать, это только усложнит ситуацию. Вы можете сгладить его и вместо этого поместить в JSON:
_request_ip
_request_url
_request_method
_request_referer