Search by

roadrunner / app-logger

roxblnfk

Send log messages from PHP workers to the RoadRunner app logger plugin over RPC

Package info

github.com/roadrunner-php/app-logger

Homepage

Issues

Chat

Documentation

pkg:composer/roadrunner/app-logger

Fund package maintenance!

roadrunner-server

Statistics

Installs: 56

Dependents: 1

Suggesters: 0

Stars: 5

1.3.0 2026-10-10 13:06 UTC

This package is auto-updated.

Last update: 2026-10-10 13:06:22 UTC


README

RoadRunner

Send application log messages to RoadRunner

Documentation Sponsor

Psalm Level Type Coverage Mutation testing badge


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

PHP Latest Version on Packagist License Total Downloads

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']]);
try Spiral Framework