1. Go to this page and download the library: Download roadrunner/psr-logger library. Choose the download type require.
2. Extract the ZIP file and open the index.php.
3. Add this code to the index.php.
<?php
require_once('vendor/autoload.php');
/* Start to develop here. Best regards https://php-download.com/ */
roadrunner / psr-logger example snippets
use RoadRunner\Logger\Logger as AppLogger;
use RoadRunner\PsrLogger\RpcLogger;
// Initialize the RoadRunner app logger
$rpc = \Spiral\Goridge\RPC\RPC::create('127.0.0.1:6001');
$appLogger = new AppLogger($rpc);
// Create the PSR-3 compatible logger
$logger = new RpcLogger($appLogger);
// Basic logging with different levels
$logger->emergency('System is unusable');
$logger->alert('Action must be taken immediately');
$logger->critical('Critical conditions');
$logger->error('Runtime errors');
$logger->warning('Warning conditions');
$logger->notice('Normal but significant condition');
$logger->info('Informational messages');
$logger->debug('Debug-level messages');
// Logging with context data
$logger->info('User logged in', [
'user_id' => 123,
'ip_address' => '192.168.1.1',
'user_agent' => 'Mozilla/5.0...'
]);
// Using the generic log method
$logger->log(\Psr\Log\LogLevel::ERROR, 'Something went wrong', [
'exception' => $exception->getMessage(),
'trace' => $exception->getTraceAsString()
]);
// String levels
$logger->log('error', 'Error message');
// PSR-3 constants
$logger->log(\Psr\Log\LogLevel::WARNING, 'Warning message');
// BackedEnum example
enum LogLevel: string
{
case Error = 'error';
case Warning = 'warning';
case Info = 'info';
case Debug = 'debug';
}
$logger->log(LogLevel::Error, 'Error via enum');
/**
* @implements ObjectProcessor<ActiveRecord>
*/
class EntityProcessor implements ObjectProcessor
{
public function canProcess(object $value): bool
{
return $value instanceof ActiveRecord;
}
public function process(object $value, callable $processor): mixed
{
return $processor($value->toArray());
}
}
// Extend default processor with your custom processor
$processor = DefaultProcessor::createDefault()
->withObjectProcessors(new EntityProcessor());
$logger = new RpcLogger($appLogger, $processor);
// Now entity objects will be automatically converted to arrays with essential data
$logger->info('Order created', [
'user' => $user, // User entity instance
'order' => $order, // Order entity instance
]);
// Add multiple custom processors at once
$processor = DefaultProcessor::createDefault()
->withObjectProcessors(
new EntityProcessor(),
new MoneyProcessor(),
new CustomValueObjectProcessor(),
);
$logger = new RpcLogger($appLogger, $processor);
use RoadRunner\PsrLogger\Context\ObjectProcessor\DateTimeProcessor;
// Create empty processor and add only specific processors
$processor = DefaultProcessor::create()
->withObjectProcessors(
new DateTimeProcessor(),
new EntityProcessor()
);
$logger = new RpcLogger($appLogger, $processor);
use RoadRunner\Logger\Logger as AppLogger;
use RoadRunner\PsrLogger\RpcLogger;
// Using a completely custom processor
$customProcessor = function (mixed $context): mixed {
// Your custom processing logic
return $context;
};
$logger = new RpcLogger($appLogger, $customProcessor);
Loading please wait ...
Before you can download the PHP files, the dependencies should be resolved. This can take some minutes. Please be patient.