Skip to content

Document array messages in the Logger #155

Open

Description

@armanist

Summary

Make the Logger pages match the behavior of quantum-php/framework#613, which lets logger() log an array message. It is in the 3.2.0 milestone because it changes the ReportableInterface contract.

Why

The Logger pages already promise that an array message is JSON-encoded with pretty printing, and that logger() is for structured array messages. In 3.1.x that call throws a TypeError. When #613 ships in 3.2.0, ReportableInterface::report() and the Logger methods accept string|Stringable|array, and each adapter renders the message, so the pages have to describe what really happens in each adapter and in the debugbar. A custom adapter has to widen its report() signature, which is a breaking change.

Pages

  • v3.0/packages/logger/usage.md: the "Log a structured payload" example, checked against the released code.
  • v3.0/packages/logger/contracts.md: the new signature of ReportableInterface::report().
  • v3.0/packages/logger/adapters.md and architecture.md: how each adapter writes an array message, and what the debug-mode adapter keeps for the debugbar.
  • v3.0/packages/logger/helpers.md: the signatures of error(), warning(), notice(), info() and debug(), which accept an array message too, and the two sentences that say the helpers take string messages only.
  • v3.0/packages/debugger/architecture.md: how an array message appears in the messages tab, which is fed by logger()->getAdapter()->getMessages().
  • v3.0/upgrade-guide.md: a note for applications with a custom logger adapter, which must accept string|Stringable|array, and for applications that subclass Logger and override a level method.

Acceptance criteria

  • every name and example exists in the released code and was run
  • each fact is stated once at its home page and linked elsewhere
  • internal links and anchors resolve
  • the pull request goes into staging and is published with the 3.2.0 documentation release

Activity

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

    documentationImprovements or additions to documentation

    Type

    No type

    Projects

    No projects

      Milestone

      No milestone

      Relationships

      None yet

      Development

      No branches or pull requests

      Issue actions