kronos / log
PSR-3 compliant logging component
Installs: 70 877
Dependents: 0
Suggesters: 0
Security: 0
Stars: 3
Watchers: 23
Forks: 0
Open Issues: 4
Requires
- php: ^7.4 || ^8.1
- php-http/guzzle6-adapter: ^2.0
- psr/log: ^1.0
Requires (Dev)
- cyclonedx/cyclonedx-php-composer: 3.10.0
- dealerdirect/phpcodesniffer-composer-installer: 0.7.2
- fluent/logger: 1.0.1
- graylog2/gelf-php: 1.7.1
- guzzlehttp/guzzle: 6.5.8
- phpcompatibility/php-compatibility: 9.3.5
- phpunit/phpunit: 9.5.21
- sentry/sentry: 3.6.0
- vimeo/psalm: 4.23.0
Suggests
- fluent/logger: Required for Fluentd writer
- graylog2/gelf-php: Required for Graylog writer
- guzzlehttp/guzzle: Required for LogDNA writer
- sentry/sentry: Required for Sentry writer
- dev-master
- 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
- dev-renovate/php-patches
- dev-renovate/guzzlehttp-guzzle-7.x
- dev-renovate/psr-log-3.x
- dev-dev/libs-131
- dev-dev/PI-44
- dev-remove-tag
This package is auto-updated.
Last update: 2022-07-03 00:58:04 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);