Pas spécifiquement une réponse demandée mais peut-être une meilleure façon, selon votre scénario, serait de ne pas vous connecter à stdout / stderr du tout. Il suffit de diriger les journaux vers cat au format JSON. Cela supprimerait la nécessité de différencier les flux car le json pourrait avoir les données nécessaires pour les distinguer. par exemple quelque chose dans le sens de ce qui suit. Cela peut ensuite être ingéré beaucoup plus facilement dans quelque chose comme graylog
GlobalLog "| cat - " gelf
ErrorLog "| cat - "
LogFormat "{ \"apache_log\": \"ACCESS\", \"app_name\": \"apache\", \"Connection\": \"%{X-Forwarded-Proto}i:%{X-Forwarded-Port}i \", \"X-Forwarded-For\": \"%{X-Forwarded-For}i\", \"version\": \"1.1\", \"vhost\": \"%V\", \"short_message\": \"%r\", \"timestamp\": %{%s}t, \"level\": 6, \"user_agent\": \"%{User-Agent}i\", \"source_ip\": \"%a\", \"duration_usec\": %D, \"duration_sec\": %T, \"request_size_byte\": %O, \"http_status\": %s, \"http_request_path\": \"%U\", \"http_request\": \"%U%q\", \"http_method\": \"%m\", \"http_referer\": \"%{Referer}i\", \"X-Powered-By\": \"%{X-Powered-By}i\" }" gelf
ErrorLogFormat "{ \"app_name\": \"apache\", \"apache_log\": \"ERROR\", \"time\":\"%{%Y-%m-%d}tT%{%T}t.%{msec_frac}tZ\", \"function\" : \"[%-m:%l]\" , \"process\" : \" [pid %P:tid %T] \" , \"message\" : \"%M\" ,\ \"referer\"\ : \" %{Referer}i \" }"
Il existe également un module de journalisation gelf, vous pouvez donc diffuser directement depuis apache vers un serveur de type graylog si vous le souhaitez