https://github.com/dansol/monolog-extensions
Additional handlers, formatters and processors for use with Monolog
https://github.com/dansol/monolog-extensions
handler monolog pdohandler
Last synced: 5 months ago
JSON representation
Additional handlers, formatters and processors for use with Monolog
- Host: GitHub
- URL: https://github.com/dansol/monolog-extensions
- Owner: dansol
- License: mit
- Created: 2022-12-29T18:45:32.000Z (over 3 years ago)
- Default Branch: master
- Last Pushed: 2022-12-30T16:22:03.000Z (over 3 years ago)
- Last Synced: 2025-05-10T16:39:22.419Z (about 1 year ago)
- Topics: handler, monolog, pdohandler
- Language: PHP
- Homepage:
- Size: 2.93 KB
- Stars: 0
- Watchers: 1
- Forks: 0
- Open Issues: 0
-
Metadata Files:
- Readme: README.md
- License: LICENSE.md
Awesome Lists containing this project
README
# monolog-extensions
Additional handlers, formatters and processors for use with Monolog
(at the moment only PDOHandler)
## Installation
```bash
$ composer require dansol/monolog-extensions
```
## PDO Handler
Allows to store log messages to Database via PDO.
The Handler can manage record mapping to match custom database table/fields
example:
```php
use MonologExtensions\Handler\PDOHandler;
use Monolog\Logger;
...
// PDO
try {
$pdo = new PDO($dsn, $user, $pass, $options);
} catch (\PDOException $e) {
throw new \PDOException($e->getMessage(), (int)$e->getCode());
}
//---------------------------------------------------------------------
// Logger Initialization
// *** example*** adapat tablename, dateformat, mapping to your needs
// tb_log ->([Date] [datetime] NULL,[Type] [nvarchar](50) NULL,[Event] [nvarchar](max) NULL,[UserName] [nvarchar](50) NULL)
$dbTableName="Tb_Logs";
// database date format
$databaseDateFormat="Y-m-d H:i:s";
// map log properties to database table fields
$mapping = [
'datetime' => 'date',
'level' => 'type',
'message' => 'event',
'context' => [
'username' => 'username' // custom fields/info
]
];
// monolog new pdo Handler
$pdoHandler= new PDOHandler($pdo,$dbTableName,$databaseDateFormat,$mapping);
$logger = new Logger('channel name');
$logger->pushHandler($pdoHandler, \Monolog\Logger::DEBUG );
//----------------------------------------------------------------
....
// write log example
$this->logger->info('successfully login for user ' . $identity ,['username'=>$identity]);
```