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:
Comments
Post a Comment