debugger84 / zf2-graylog
A Zend\Log writer and formatter helps you add Graylog logging to your ZF2 application.
Installs: 1 616
Dependents: 0
Suggesters: 0
Security: 0
Stars: 0
Watchers: 1
Forks: 3
pkg:composer/debugger84/zf2-graylog
Requires
- graylog2/gelf-php: ^1.5
- psr/container: ^1.0
- zendframework/zendframework: ^2.4
This package is not auto-updated.
Last update: 2025-10-12 09:11:05 UTC
README
A Zend\Log writer and formatter helps you add Graylog logging to your ZF2
application, using bzikarsky/gelf-php: the newer version of deprecated Graylog2/gelf-php library.
Install
composer require debugger84/zf2-graylog:dev-master
Add values of graylog connection to your config
'graylog' => [
'host' => 'http://graylog.local',
'port' => 12222,
'facility' => 'Your project name'
],
Rewrite factory for Zend Logger interface
\Zend\Log\LoggerInterface::class => \ZF2Graylog\Factory\LoggerFactory::class,
Usage
I added a method to a custom base controller:
class Base extends \Zend\Mvc\Controller\AbstractActionController {
private $logger;
protected function getLogger() {
if (!isset($this->logger)) {
$this->logger = new \Zend\Log\Logger;
// __construct($facility, $hostname, $port)
$writer = new \ZF2Graylog\Log\Writer\Graylog2('ZF2', '127.0.0.1');
$this->logger->addWriter($writer);
}
return $this->logger;
}
}
Which can then be used as usual:
$this->getLogger()->info('Informative message');
The formatter should (or will) support error logging (as below) by mapping the following attributes to their respective GELF fields:
$logger = new \Zend\Log\Logger;
$writer = new \ZF2Graylog\Log\Writer\Graylog2('ZF2', '127.0.0.1');
$logger->addWriter($writer);
Zend\Log\Logger::registerErrorHandler($logger);
Zend\Log GELFMessage
--------------------------------------------------------------------------------
message message, full_message, short_message (unless present in $values)
errno level
file file
line line
context additional fields (to be tested)
Additional fields that are associated with GELF fields:
full(message) is mapped tofull_message(if present, otherwisemessage)short(message) is mapped toshort_message(if present, otherwisemessage)versionis mapped toversion(not set if not present)facilityis mapped tofacility. A default facility is set in the writer.- Additional fields are mapped as additional fields.
Todo
- Write a composer.json that includes the Graylog2/gelf-php lib.
- Docblocks.
- Further testing of different events.
- Check errno maps to the correct severity level when used as an errorHandler.
License
TBC, will probably be MIT.