protounit / watchtower
Monolog wrapper that sends your logs to Telegram channel
1.3
2018-07-28 10:55 UTC
Requires
- php: >=7.0
- guzzlehttp/guzzle: ^6.3
- monolog/monolog: ^1.23
This package is auto-updated.
Last update: 2024-04-22 02:40:47 UTC
README
Telegram handler for Monolog. Send log info to channel with pretty formatting and useful information
Inspired by monolog-telegram
Dependencies
monolog/monolog guzzlehttp/guzzle
How it works
- Watchtower handle Monolog methods to send messages
- After text formatting it creates fork of process and send message via guzzle
- Parent process doing nothing so you don't wait until it stops requesting Telegram API
- Child process waits for response and die after job is done
- If you set config option
'useFork' => false
guzzle will wait for response from Telegram API and hold your app till
Too much messages per time could eat all of your RAM because there is no fork bomb detectors!
Install
composer require protounit/watchtower composer install
Configuration
This array represents full amount of options you need to make package work
$config = [ 'botId' => 'BOTID:BOTID', 'channelId' => 'CHANNELID', 'timeZone' => 'Europe/Rome', 'useFork => true ];
Example
<?php require __DIR__ . '/vendor/autoload.php'; use Monolog\Logger; use Protounit\WatchTower\TelegramHandler; /** * Minimal required configuration */ $config = [ 'botId' => 'BOTID:BOTID', 'channelId' => 'CHANNELID', 'timeZone' => 'Europe/Rome', ]; /** * Creating Logger interface with custom channel name */ $logger = new Logger('WatchTower'); /** * Including custom handler for Monolog messages */ $logger->pushHandler(new TelegramHandler($config)); /** * Example messages */ $logger->error( 'An error occurred while creating another better example', [ 'file' => __FILE__, 'line' => __LINE__, 'debugInfo' => [ 'message' => 'Yet another message', ], ] ); /** * Something more interesting */ $logger->critical( 'Cannot allocate memory: couldn\'t create child process', [ 'file' => __FILE__, 'line' => __LINE__, 'debugInfo' => [ 'memory' => '640K', ], ] );