2017 © Pedro Peláez
 

library monolog-pdo-handler

A handler for Monolog that stores data via PDO driver to Database

image

karelwintersky/monolog-pdo-handler

A handler for Monolog that stores data via PDO driver to Database

  • Saturday, June 16, 2018
  • by KarelWintersky
  • Repository
  • 1 Watchers
  • 0 Stars
  • 0 Installations
  • PHP
  • 0 Dependents
  • 0 Suggesters
  • 0 Forks
  • 1 Open issues
  • 4 Versions
  • 0 % Grown

The README.md

monolog.KW-PDO-Handler

PDO Handler for Monolog, which allows to store log messages in a MySQL Database via PDO handler., (*1)

Handler can log text messages to a specific table and creates the table automatically if it does not exist., (*2)

Installation

karelwintersky/monolog-pdo-handler is available via composer., (*3)

composer require karelwintersky/monolog-pdo-handler

Minimum PHP version is 7.1, (*4)

Usage

Just use it as any other Monolog Handler, push it to the stack of your Monolog Logger instance. The Handler however needs some parameters:, (*5)

  • $pdo - PDO Instance of your database. Pass along the PDO instantiation of your database connection with your database selected.
  • $table - The table name where the logs should be stored.
  • $additional_fields - associative array of additional database fields definitions. All additional columns are created automatically and the fields can later be used in the extra context section of a record. See examples below. Default is empty array.
  • $additional_indexes - associative array of additional database indexes definitions. Default is empty array
  • $level - The minimum logging level at which this handler will be triggered. Must be any of standard Monolog logging levels (default: Logger::DEBUG)

Default fields at logging table

  • id - defined as BIGINT(20) NOT NULL AUTO_INCREMENT PRIMARY KEY;
  • ipv4 - defined as int(10) unsigned DEFAULT NULL, will contain client IPv4 or 127.0.0.1 for console scripts;
  • time - defined as TIMESTAMP, will contain current timestamp;
  • level - defined as SMALLINT, logging level;
  • channel - defined as VARCHAR(64), channel name,
  • message - defined as LONGTEXT, message

Examples

Given that $pdo is your database instance, you could use the class as follows:, (*6)

//Import class
use Monolog\Logger;
use KarelWintersky\Monolog\KWPDOHandler;

// Create log handler
// using table `log` with additional fields
// `filename`, `filesize`, `filetime`
// and index at field `filename`
// minimum logging level is INFO.

$log_handler = new KWPDOHandler($pdo_handler, 'log', [
    'filename'  =>  'VARCHAR(32)',
    'filesize'  =>  'BIGINT(20) DEFAULT NULL',
    'filetime'  =>  'DATETIME'
], [
    'filename'  =>  'CREATE INDEX filename on `%s` (`filename`) USING HASH',
], Logger::INFO);

// Create logger
$monologger = new \Monolog\Logger($monolog_channel);

// Set handler
$monologger->pushHandler($log_handler);

// Now you can use the logger, and further attach additional information
$monologger->notice("File information", [
    'filename'  =>  $data['filename'],
    'filesize'  =>  $data['filesize'],
    'filetime'  =>  $data['filetime']
]);

Note: SQLite does not support 'USING method' for indexes;, (*7)

ToDo

  • [ ] Check and override default field definitions
  • [ ] Update readme : how to write custom indexes
  • [ ] Update readme : about SQLite.
  • [ ] Implement default indexes for PostgreSQL

License

This tool is free software and is distributed under the MIT license. Please have a look at the LICENSE file for further information., (*8)

The Versions

16/06 2018

dev-master

9999999-dev https://github.com/KarelWintersky/monolog-pdo-handler

A handler for Monolog that stores data via PDO driver to Database

  Sources   Download

MIT

The Requires

 

by Karel Wintersky

database log logging monolog pdo

16/06 2018

v0.2

0.2.0.0 https://github.com/KarelWintersky/monolog-pdo-handler

A handler for Monolog that stores data via PDO driver to Database

  Sources   Download

MIT

The Requires

 

by Karel Wintersky

database log logging monolog pdo

07/12 2017

0.1.3

0.1.3.0 https://github.com/KarelWintersky/monolog.KW-PDO-Handler

A handler for Monolog that stores data via PDO driver to Database

  Sources   Download

MIT

The Requires

 

by Karel Wintersky

database log logging monolog pdo

07/12 2017

0.1

0.1.0.0 https://github.com/KarelWintersky/monolog.KW-PDO-Handler

A handler for Monolog that stores data via PDO driver to Database

  Sources   Download

MIT

The Requires

 

by Karel Wintersky

database log logging monolog pdo