roadrunner / app-logger
Send log messages from PHP workers to the RoadRunner app logger plugin over RPC
Fund package maintenance!
1.3.0
2026-10-10 13:06 UTC
Requires
- php: >=8.2
- ext-json: *
- roadrunner/api-dto: ^2.1
- roadrunner/goridge: ^4.5
- spiral/roadrunner: ^3.0
Requires (Dev)
- mockery/mockery: ^1.5
- spiral/code-style: ^2.3.1
- testo/bridge-mockery: ^0.1.2
- testo/testo: ^0.10.55
- vimeo/psalm: ^6 || ^7
Suggests
None
Provides
None
Conflicts
None
Replaces
- roadrunner-php/app-logger: 1.3.0
README
Send application log messages to RoadRunner
A PHP client for the RoadRunner app-logger plugin: it sends log messages from your PHP workers to RoadRunner over RPC, so they end up in the server's own logs.
Get Started
Installation
composer require roadrunner/app-logger
Configuration
Such a configuration would be quite feasible to run:
rpc: listen: tcp://127.0.0.1:6001 logs: channels: app: level: info
Usage
Create an instance of RoadRunner\Logger\Logger:
use Spiral\Goridge\RPC\RPC; use Spiral\RoadRunner\Environment; use RoadRunner\Logger\Logger; $rpc = RPC::create('tcp://127.0.0.1:6001'); // or, inside a RoadRunner worker (requires roadrunner/worker) $rpc = RPC::create(Environment::fromGlobals()->getRPCAddress()); $logger = new Logger($rpc); $logger->info('Info message');
Available methods
debug, error, info and warning are mapped to the RoadRunner logger, and log is mapped to stderr.
/** * debug mapped to RR's debug logger */ $logger->debug('Debug message'); /** * error mapped to RR's error logger */ $logger->error('Error message'); /** * log mapped to RR's stderr */ $logger->log("Log message \n"); /** * info mapped to RR's info logger */ $logger->info('Info message'); /** * warning mapped to RR's warning logger */ $logger->warning('Warning message');
Context
Every method also accepts a context array as the second argument. Its values are sent as log attributes: strings and Stringable objects as is, everything else JSON-encoded.
$logger->info('User logged in', ['user_id' => 42, 'roles' => ['admin']]);