cognesy / logging
Functional logging pipeline for Instructor PHP with framework integrations
v2.0.0
2026-03-13 19:48 UTC
Requires
- php: ^8.3
- cognesy/instructor-events: ^2.0
- psr/log: ^3.0
Requires (Dev)
- icanhazstring/composer-unused: ^0.9.0
- illuminate/contracts: ^11.0
- illuminate/support: ^11.0
- jetbrains/phpstorm-attributes: ^1.2
- maglnet/composer-require-checker: ^4.16
- monolog/monolog: ^3.0
- pestphp/pest: ^2.34
- phpstan/phpstan: ^1.11
- roave/security-advisories: dev-latest
- symfony/dependency-injection: ^7.0
- symfony/event-dispatcher: ^7.0
- symfony/http-kernel: ^7.0
- vimeo/psalm: ^6.0
README
Functional logging pipeline for InstructorPHP events.
Use it to turn events into structured log entries using composable:
- filters
- enrichers
- formatters
- writers
Symfony integration is included.
Framework integration wiring is explicit in 2.0:
- Laravel integration lives in
packages/laravel. - Symfony uses
instructor_logging.event_bus_service(defaultCognesy\Events\Contracts\CanHandleEvents).
Example
<?php use Cognesy\Events\Event; use Cognesy\Logging\Enrichers\BaseEnricher; use Cognesy\Logging\Filters\LogLevelFilter; use Cognesy\Logging\Formatters\DefaultFormatter; use Cognesy\Logging\LogEntry; use Cognesy\Logging\Pipeline\LoggingPipeline; use Cognesy\Logging\Writers\CallableWriter; use Psr\Log\LogLevel; $pipeline = LoggingPipeline::create() ->filter(new LogLevelFilter(LogLevel::INFO)) ->enrich(new BaseEnricher()) ->format(new DefaultFormatter()) ->write(CallableWriter::create(function (LogEntry $entry): void { error_log($entry->message); })) ->build(); $pipeline(new Event(['operation' => 'demo']));
Documentation
packages/logging/CHEATSHEET.mdpackages/logging/src/packages/logging/tests/