phalcon / incubator-logger
Phalcon Incubator Logger Adapters and Formatters
Fund package maintenance!
phalcon
Open Collective
Requires
- php: >=7.2
- ext-json: *
- ext-phalcon: ^4.0
Requires (Dev)
- aws/aws-sdk-php: ^3.145
- codeception/codeception: ^4.1
- codeception/module-asserts: ^1.0.0
- codeception/module-db: ^1.0
- phalcon/ide-stubs: ^4.0
- phpstan/phpstan: ^0.12.18
- squizlabs/php_codesniffer: ^3.5
- vimeo/psalm: ^4.1
Suggests
- ext-sockets: Needed to run in Udp Logger Adapter
- aws/aws-sdk-php: Needed to run in CloudWatch Logger Adapter
This package is auto-updated.
Last update: 2023-01-21 22:20:31 UTC
README
Extra Adapters for Phalcon Logger component.
Installation
composer require phalcon/incubator-logger
Amazon CloudWatch
Adapter to store logs in AWS ClodWatch:
Note: group name and stream name must be created before call any logs. You can make it inside AWS console.
use Aws\CloudWatchLogs\CloudWatchLogsClient; use Phalcon\Incubator\Logger\Adapter\CloudWatch; use Phalcon\Logger; $di->set( 'logger', function () { $client = new CloudWatchLogsClient([ 'credentials' => [ 'key' => 'AMAZON_CLOUDWATCH_KEY', 'secret' => 'AMAZON_CLOUDWATCH_SECRET', ], 'region' => 'AMAZON_CLOUDWATCH_REGION', 'version' => 'latest', // Or any specific ]); $adapter = new CloudWatch($client, '/group/name', 'stream-name'); return new Logger('messages', [ 'main' => $adapter, ]); } );
Database
Adapter to store logs in a database table:
use Phalcon\Db\Adapter\Pdo\Mysql; use Phalcon\Incubator\Logger\Adapter\Database as DbLogger; $di->set( 'logger', function () { $connection = new Mysql( [ 'host' => 'localhost', 'username' => 'root', 'password' => 'secret', 'dbname' => 'audit', ] ); $logsName = 'errors'; $tableName = 'logs'; return new DbLogger($connection, $logsName, $tableName); } );
The following table used to store the logs:
CREATE TABLE IF NOT EXISTS `logs` ( `id` INT(10) unsigned NOT NULL AUTO_INCREMENT, `name` VARCHAR(32) DEFAULT NULL, `type` INT(3) NOT NULL, `content` text, `created_at` BIGINT unsigned NOT NULL, PRIMARY KEY (`id`) ) ENGINE=InnoDB DEFAULT CHARSET=utf8
UDP logger
Adapter to send messages by UDP protocol to external server
use Phalcon\Incubator\Logger\Adapter\Udp as UdpLogger; $di->set( 'logger', function () { $host = '192.168.1.2'; $port = 65000; return new UdpLogger('errors', $host, $port); } );