php - Prevent Internal Server Error with Symfony 2 / Monolog on failed gelf connection -


i'm trying stream logs symfony 2 app graylog 2 server using gelf format.

my monolog configuration looks follows:

monolog:     handlers:           # --- 8< ---           # ...           # --- >8 ---            graylog:               type: gelf               publisher:                   hostname: my-graylog-server.com                   port: 12201               level: debug               formatter: app.gelf_formatter 

when graylog server not available, (understandably) connection refused error

[2017-07-28 16:03:25] app.error: failed write socket: fwrite(): send of 153 bytes failed errno=111 connection refused (8) [] [] 

which results in internal server error (500 response code request causing log).

what's best way catch error? having error log resonable, don't want requests error when external log processing server not available?

best bet have local caching mechanism on application server forward requests. way if there momentary downtime of log server, requests can queued. systems fluentd work this. on other hand, if don't care losing log messages, can transport ignores errors such ignoreerrortransportwrapper:

https://github.com/bzikarsky/gelf-php/blob/master/src/gelf/transport/ignoreerrortransportwrapper.php

further reading:

https://github.com/bzikarsky/gelf-php/issues/56


Comments

Popular posts from this blog

javascript - Create a stacked percentage column -

Optimising Firebase database by automatically overwriting data -

javascript - Angular UI-Grid customTemplate directive causing rows to load slowly/? -