lefuturiste / monolog-discord-handler
A simple monolog handler for support Discord webhooks
Installs: 74 749
Dependents: 4
Suggesters: 0
Security: 0
Stars: 34
Watchers: 2
Forks: 13
Open Issues: 1
Requires
- php: >=8.1
- guzzlehttp/guzzle: ^7.0
- monolog/monolog: ^3.0
Requires (Dev)
- phpstan/phpstan: ^1.10
- phpunit/phpunit: ^8.2
- vlucas/phpdotenv: ^3.4
README
A simple monolog handler for support Discord webhooks
Dependencies
- PHP >= 8.1
- Monolog >= 3.0
If you want to use this lib with older version of PHP, install versions prior to 0.4
1. Installing
Easy installation via composer. Still no idea what composer is? Find out here here.
composer require lefuturiste/monolog-discord-handler
2. Usage
Push this handler to your Monolog instance:
Single webhook URL
<?php require 'vendor/autoload.php'; $log = new Monolog\Logger('your name'); $log->pushHandler(new DiscordHandler\DiscordHandler('https://discordapp.com/api/webhooks/xxx/yyy', 'name', 'subname', 'DEBUG'));
Multiple webhook URLs
<?php require 'vendor/autoload.php'; $log = new Monolog\Logger('your name'); $log->pushHandler(new DiscordHandler\DiscordHandler([ 'https://discordapp.com/api/webhooks/xxx/yyy', 'https://discordapp.com/api/webhooks/xxx/yyy' ], 'name', 'subname', 'DEBUG'));
Use configuration
You can customize the default message and datetime format.
<?php require 'vendor/autoload.php'; $log = new Monolog\Logger('name'); $handler = new DiscordHandler\DiscordHandler('https://discordapp.com/api/webhooks/xxx/yyy', 'name', 'subname', 'DEBUG'); $handler->getConfig() ->setMultiMsg(true) ->setMaxMessageLength(2000) // at least 50 characters ->setDatetimeFormat('Y/m/d H:i') ->setTemplate("{datetime} {name}: {message}"); // or you can create another Config instance and replace it: $otherConfig = new DiscordHandler\Config(); $otherConfig->setWebHooks([ 'https://discordapp.com/api/webhooks/xxx/yyy', 'https://discordapp.com/api/webhooks/xxx/yyy' ]); $handler->setConfig($otherConfig); $log->pushHandler($handler);
3. Run examples
To run the example, you need:
- Clone this repo
- Run
composer install
at the root - Change directory into
examples
- Run with the
DISCORD_WEBHOOK_URL
env var set:env DISCORD_WEBHOOK_URL=https://… php ./simple_usage.php
4. Contribute
composer install
cp .env.example .env
, for now we don't have unit tests.composer test
- run
vendor/bin/phpstan analyse src -l 6
to run the static analyzer.
TODO
- upgrade to monolog 3.0
- upgrade to php 8.1
- use type safe feature of php 8.1
- delete outdated "units" tests that are in fact integration tests
- add simple units test that will test for interfaces