Extra Adapters for Phalcon Logger component.
composer require phalcon/incubator-logger
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\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]);
}
);
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
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);
}
);
Adapter to write messages into a Slack channel
$adapter = new \Phalcon\Incubator\Logger\Adapter\Slack('api-token','channel-name');
$logger = new \Phalcon\Logger\Logger('logger-name', ['main-slack' => $adapter]);
$logger->info('Information message to log in the channel channel-name');
Access this page to create an application
(after choosing/creating a workspace)
Go to Features > OAuth & Permissions
and in the Scopes
section -> Add an oauth scope
and select the following rights :
- chat:write
- chat:write.public
You can now generate a token for your bot/user in the Install App
section which looks something like this :
xoxp-1111111-22222222-33333333-aaaaaaaaaaaaaaaaaaaaaa