Skip to main content

nexus-logger

Async actor-backed PSR-3 logger where log calls return immediately — formatting and I/O happen on a dedicated LogActor turn, off the request path.

What's in this package

Install

composer require nexus-actors/logger

Quick example

src/Bootstrap/LoggerSetup.php
use Monadial\Nexus\Logger\Formatter\LineFormatter;
use Monadial\Nexus\Logger\Handler\ConsoleHandler;
use Monadial\Nexus\Logger\Level;
use Monadial\Nexus\Logger\NexusLogger;

$logger = NexusLogger::create($system, 'app')
->minLevel(Level::Info)
->handler(new ConsoleHandler(STDOUT, new LineFormatter()))
->build();

$logger->info('user {name} logged in', ['name' => 'tomas', 'userId' => 42]);
// → [2026-06-14T13:50:01.234Z] app.INFO: user tomas logged in {"userId":42}

For multi-thread Swoole deployments, use ThreadQueueHandler to push formatted lines onto a shared Swoole\Thread\Queue and drain them with a single dedicated writer thread — no locks, no per-write fopen.

See also