Buduję obraz dokowany dla aplikacji Symfony. Na tym obrazie chcę przesyłać strumieniowo logi Symfony na standardowe wyjście. Tak więc, podobnie jak nginx dzienników skonfigurowane są dodałem tę linię do mojego Dockerfile:Logi z Symfony do stdout wewnątrz kontenera Docker
ln -sf /dev/stdout /var/www/project/app/logs/prod.log
wewnątrz pojemnika, widzę to:
$ ls /var/www/project/app/logs/ -l
total 12
-rw-r--r-- 1 501 games 4473 Jul 21 08:36 dev.log
lrwxrwxrwx 1 501 games 11 Jul 21 08:35 prod.log -> /dev/stdout
jednak, aplikacja generuje następujący błąd:
PHP Fatal error: Uncaught exception 'UnexpectedValueException' with message 'The stream or file "/var/www/project/app/logs/prod.log" could not be opened: failed to open stream: No such file or directory' in /var/www/project/app/cache/prod/classes.php:5808
Stack trace:
#0 /var/www/project/app/cache/prod/classes.php(5746): Monolog\Handler\StreamHandler->write(Array)
#1 /var/www/project/app/cache/prod/classes.php(5917): Monolog\Handler\AbstractProcessingHandler->handle(Array)
#2 /var/www/project/app/cache/prod/classes.php(6207): Monolog\Handler\FingersCrossedHandler->handle(Array)
#3 /var/www/project/app/cache/prod/classes.php(6276): Monolog\Logger->addRecord(500, 'Fatal Error: Un...', Array)
#4 /var/www/project/app/cache/prod/classes.php(1978): Monolog\Logger->log('critical', 'Fatal Error: Un...', Array)
#5 /var/www/project/app/cache/prod/classes.php(2034): Symfony\Component\Debug\ErrorHandler->handleException(Object(Symfony\Component\Debug\Exception\FatalErrorException), Array)
#6 [internal function]: Symfony\Component\Debug\E in /var/www/project/app/cache/prod/classes.php on line 5808
Wszelkie sugestie?
Wiadomość nie pozwala na spekulacje: Nie można otworzyć strumienia lub pliku "/var/www/project/app/logs/prod.log": nie można otworzyć strumienia: Brak takiego pliku lub katalogu –
Oczywiście .. Wydaje się, że nie jest w stanie otworzyć pliku do zapisu, ponieważ jest to dowiązanie symboliczne wskazujące na/dev/stdout. Ale jak mogłem to osiągnąć? (aka zrobić, aby log Symfony stał się stdout zamiast tego pliku) – Webberig
jak jest otwierany plik? to znaczy. tylko przy użyciu flagi "w"? –