PHPackages                             atans/atans-logger - PHPackages - PHPackages  [Skip to content](#main-content)[PHPackages](/)[Directory](/)[Categories](/categories)[Trending](/trending)[Leaderboard](/leaderboard)[Changelog](/changelog)[Analyze](/analyze)[Collections](/collections)[Log in](/login)[Sign up](/register)

1. [Directory](/)
2. /
3. [Logging &amp; Monitoring](/categories/logging)
4. /
5. atans/atans-logger

ActiveLibrary[Logging &amp; Monitoring](/categories/logging)

atans/atans-logger
==================

Simple event logger for Zend Framework 2

057PHP

Since Feb 24Pushed 11y ago1 watchersCompare

[ Source](https://github.com/atans/AtansLogger)[ Packagist](https://packagist.org/packages/atans/atans-logger)[ RSS](/packages/atans-atans-logger/feed)WikiDiscussions master Synced yesterday

READMEChangelogDependenciesVersions (1)Used By (0)

Atans Logger
============

[](#atans-logger)

Simple event logger for Zend Framework 2

Error log
---------

[](#error-log)

1. Create error table

```
CREATE TABLE IF NOT EXISTS `error_log` (
  `id` int(11) NOT NULL AUTO_INCREMENT,
  `date` varchar(50) NOT NULL,
  `priority` int(11) NOT NULL,
  `message` longtext NOT NULL,
  `file` varchar(255) DEFAULT NULL,
  `line` int(5) DEFAULT NULL,
  `trace` text,
  PRIMARY KEY (`id`)
) ENGINE=InnoDB  DEFAULT CHARSET=utf8 AUTO_INCREMENT=1;
```

2.Add follow code to `config/autoload/global.php`

```
    /**
     * Logger
     */
    'log' => array(
        'Zend\Log\Logger' => array(
            'errorhandler' => true,
            'exceptionhandler' => true,
            'writers' => array(
                array(
                    'name' => 'db',
                    'priority' => 1,
                    'options' => array(
                        'column' => array(
                            'timestamp' => 'date',
                            'priority'  => 'priority',
                            'message'   => 'message',
                            'extra' => array(
                                'file'  => 'file',
                                'line'  => 'line',
                                'trace' => 'trace',
                            ),
                        ),
                        'table' => 'error_log',
                        'db' => 'Zend\Db\Adapter\Adapter',
                    ),
                ),
            ),
        ),
    ),
```

3. Edit `module/Application/Module.php`

```
class Module
{
    public function onBootstrap(MvcEvent $e)
    {
        // code...

        // Log error
        $eventManager = $e->getApplication()->getEventManager();

        $e->getApplication()->getServiceManager()->get('Zend\Log\Logger');
        $eventManager->attach(MvcEvent::EVENT_RENDER_ERROR, array($this, 'exceptionHandler'));
        $eventManager->attach(MvcEvent::EVENT_DISPATCH_ERROR, array($this, 'exceptionHandler'));
    }

    public function exceptionHandler(MvcEvent $e)
    {
        if ($exception = $e->getParam('exception')) {
            $trace  = sprintf("Stack trace:\n%s\n", $exception->getTraceAsString());

            if ($previous = $exception->getPrevious()) {
                $trace .= "\nPrevious exceptions:\n\n";
                while ($previous) {
                    $trace .= sprintf(
                        "Class: %s\nFile: %s\nLine: %s\nMessage: %s\n",
                        get_class($previous),
                        $previous->getFile(),
                        $previous->getLine(),
                        $previous->getMessage()
                    );

                    $trace .= sprintf("\nStack trace:\n%s\n", $previous->getTraceAsString());
                    $previous = $previous->getPrevious();
                }
            }

            $extra = array(
                'file' => $exception->getFile(),
                'line' => $exception->getLine(),
                'trace' => $trace,
            );

            $logger = $e->getApplication()->getServiceManager()->get('Zend\Log\Logger');
            $logger->err($exception->getMessage(), $extra);
        }
    }
```

4. Visit `http://pathtozf2/log/error`

Event log
---------

[](#event-log)

1.Create log table:

```
CREATE TABLE IF NOT EXISTS `event_log` (
  `id` int(11) NOT NULL AUTO_INCREMENT,
  `target` varchar(155) NOT NULL,
  `name` varchar(50) NOT NULL,
  `message` longtext,
  `object_id` int(11) DEFAULT NULL,
  `ip_address` varchar(20) DEFAULT NULL,
  `created` datetime NOT NULL,
  `created_by` int(11) DEFAULT NULL,
  `username` varchar(50) DEFAULT NULL,
  PRIMARY KEY (`id`),
  KEY `IDX_8F3F68C5DE12AB56` (`created_by`),
  KEY `search_index` (`target`,`name`,`object_id`,`ip_address`)
) ENGINE=InnoDB DEFAULT CHARSET=utf8 AUTO_INCREMENT=1 ;
```

2.Copy `atans-logger/config/atanslogger.local.php` to `config/autoload`

3.Create event callback

```
