Ik draai een PHP/Symfony app in Docker waarin ik Monolog gebruik om te loggen naat stdout/stderr. Dit werkt naar behoren, tenzij ik Symfony console commands uitvoer in een container.
Het probleem is dat wanneer een commando wordt uitgevoerd, de "stdout", "stderr" en "console" handlers hun output loggen in het huidige terminal proces (bash). Dit zorgt er voor dat de console output verprutst wordt en dat `docker logs` de log entries niet bevat: https://i.imgur.com/yB1IKrR.png.
Bestaat er misschien een makkelijke manier om de logging output altijd naar het php-fpm (of worker) process te sturen?
YAML:
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
| monolog: handlers: stdout: type: filter handler: stdout_unfiltered max_level: notice channels: ['!event'] stdout_unfiltered: type: stream level: debug path: 'php://stdout' stderr: type: stream level: warning channels: ['!event'] path: 'php://stderr' console: type: console channels: ['!event', '!doctrine', '!console'] process_psr_3_messages: false |
Het probleem is dat wanneer een commando wordt uitgevoerd, de "stdout", "stderr" en "console" handlers hun output loggen in het huidige terminal proces (bash). Dit zorgt er voor dat de console output verprutst wordt en dat `docker logs` de log entries niet bevat: https://i.imgur.com/yB1IKrR.png.
Bestaat er misschien een makkelijke manier om de logging output altijd naar het php-fpm (of worker) process te sturen?
[ Voor 36% gewijzigd door egonolieux op 14-02-2019 00:43 ]