Skip to content

Skeleton: ship marko/log with the file and stream handlers (LOG_HANDLERS=file by default) #640

Closed

Description

@markshust

Problem

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
  • Skeleton docs and the deploy/logging docs updated
  • composer ci green

Activity

  1. markshust commented on Nov 1, 2026

    @markshust
    CollaboratorAuthor

    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.

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Metadata

Metadata

Assignees

No one assigned

    Labels

    enhancementNew feature or request

    Type

    No type

    Projects

    No projects

      Milestone

      No milestone

      Relationships

      None yet

      Development

      No branches or pull requests

      Issue actions