You signed in with another tab or window. Reload to refresh your session.You signed out in another tab or window. Reload to refresh your session.You switched accounts on another tab or window. Reload to refresh your session.Dismiss alert
{{ message }}
Repository navigation
Skeleton: ship marko/log with the file and stream handlers (LOG_HANDLERS=file by default) #640
Since #608 (PR #633), marko/queue requires marko/log, and marko/log needs a handler package to write anywhere. The skeleton, which almost every app starts from, installs no log package. So a new app that runs a queue worker fails at startup with NoDriverException, and apps generally have no logging until they find out what to install.
Decision (maintainer, 2026-11-01)
Ship both handlers. They coexist since #555: only marko/log binds LoggerInterface, and handlers are chosen by name through log.handlers.
Skeleton composer.json requires marko/log, marko/log-file and marko/log-stream.
.env.example sets LOG_HANDLERS=file, which suits local development, with a comment: containers and PaaS use stream (stderr), and file,stream writes to both.
Deploy docs get a short "Logging in production" section. stream suits containers and PaaS, whose platforms collect stdout/stderr. file suits servers you SSH into, and log-file rotates. Under RoadRunner, log-stream must target stderr.
Exit criteria
Skeleton requires the three packages; .env.example has LOG_HANDLERS=file plus the comment
Skeleton tests updated if they assert its dependencies
Implemented in #642 (merged). The skeleton now requires marko/log, marko/log-file and marko/log-stream. .env.example sets LOG_HANDLERS=file with a comment on using stream for containers and PaaS, or file,stream for both. The logging guide has a new "Logging in production" section, linked from core's deploy section.
Activity
markshust commentedon Nov 1, 2026
Implemented in #642 (merged). The skeleton now requires
marko/log,marko/log-fileandmarko/log-stream..env.examplesetsLOG_HANDLERS=filewith a comment on usingstreamfor containers and PaaS, orfile,streamfor both. The logging guide has a new "Logging in production" section, linked from core's deploy section.