kronos / log
PSR-3 compliant logging component
Installs: 239 824
Dependents: 0
Suggesters: 0
Security: 0
Stars: 3
Watchers: 23
Forks: 0
Open Issues: 1
Requires
- php: ^8.3
- psr/log: ^3.0
Requires (Dev)
- cyclonedx/cyclonedx-php-composer: 5.2.1
- dealerdirect/phpcodesniffer-composer-installer: 1.0.0
- fluent/logger: 1.0.1
- guzzlehttp/guzzle: 7.9.2
- php-http/guzzle7-adapter: 1.1.0
- phpcompatibility/php-compatibility: 9.3.5
- phpunit/phpunit: 11.5.6
- sentry/sentry: 4.10.0
- vimeo/psalm: 6.2.0
Suggests
- fluent/logger: Required for Fluentd writer
- guzzlehttp/guzzle: Required for LogDNA writer
- sentry/sentry: Required for Sentry writer
- dev-master
- v5.3.0
- v5.2.0
- v5.1.0
- v5.0.0
- v4.1.0
- v4.0.1
- v4.0.0
- v3.8.0
- v3.7.0
- v3.6.0
- v3.5.1
- v3.5.0
- v3.4.0
- 3.3.2
- v3.3.1
- v3.3.0
- v3.2.1
- v3.2.0
- v3.1.2
- v3.1.1
- v3.1.0
- v3.0.3
- v3.0.2
- v3.0.1
- v3.0.0
- v2.3.0
- v2.2.8
- v2.2.7
- v2.2.6
- v2.2.5
- v2.2.4
- v2.2.3
- 2.2.2
- 2.2.1
- 2.2.0
- 2.1.3
- 2.1.2
- 2.1.1
- 2.1.0
- 2.0.0
- 1.3.0
- 1.2.0
- 1.1.1
- 1.1.0
- 1.0.0
- 0.9.0
- 0.8.4
- 0.8.3
- 0.8.2
- 0.8.1
- 0.8.0
- 0.7.2
- 0.7.1
- 0.7.0
- 0.6.0
- 0.5.0
- 0.4.0
- 0.3.0
- 0.2.0
- 0.1.0
- dev-renovate/php-minors-and-patches
- dev-dev/libs-131
- dev-dev/PI-44
- dev-remove-tag
This package is auto-updated.
Last update: 2025-03-09 23:24:03 UTC
README
PSR-3 Compliant implementation.
See php-fig/log for more information on root classes and interfaces.
Usage
use Kronos\Log; $logger = new Log\Logger(); $debug = new Log\Writer\File('/var/log/debug.log', new Kronos\Log\Adaptor\FileFactory()); $logger->addWriter($debug); ... $logger->info('Need more {drink}', ['drink' => 'coffee']);
This is a simple usage of a logger with a writer which output into given files.
It's possible to use multiple writer accepting only some log levels.
use Kronos\Log; $logger = new Log\Logger(); $logger->addContext('user', $current_user); $debug = new Log\Writer\File('/var/log/debug.log'); $debug->setMaxLevel(\Psr\Log\LogLevel::WARNING); $logger->addWriter($debug); $syslog = new Log\Writer\Syslog('application-name'); $syslog->setMinLevel(\Psr\Log\LogLevel::ERROR); $logger->addWriter($syslog); ... try { $logger->debug('Trying something with {value}', ['value' => $some_variable]); // Something } catch(\Exception $e) { $logger->error('Something did not work', ['exception' => $e]); }
Here the info will be writen in /var/log/debug.log
while the error will be sent to syslog.
Using the builder
You can use the builder to quickly create a fully configured logger.
$settings = [ [ 'type' => \Kronos\Log\Enumeration\WriterTypes::FILE, 'settings' => [ 'filename' => '/var/log/debug.log' ] ], [ 'type' => \Kronos\Log\Enumeration\WriterTypes::SENTRY, 'settings' => [ 'minLevel' => \Psr\Log\LogLevel::ERROR, 'key' => 'kronos', 'secret' => 'supersecrethash', 'projectId' => 12345 ] ], [ 'type' => \Kronos\Log\Enumeration\WriterTypes::LOGDNA, 'settings' => [ 'minLevel' => \Psr\Log\LogLevel::INFO, 'hostname' => gethostname(), 'application' => 'app-name', 'ingestionKey' => 'anothersecrethash' ] ] ]; $builder = new \Kronos\Log\Builder(); $logger = $builder->buildFromArray($settings);