culy / monolog-microsoft-teams
Monolog Handler for sending messages to Microsoft Teams using the Incoming Webhook connector
Requires
- php: ^7.2|^8.0
- monolog/monolog: ^1.23|^2.0
Requires (Dev)
- ext-curl: *
- php-coveralls/php-coveralls: ^2.0
- phpunit/phpunit: ^5.7|^6.0|^7.0|^9.0
README
Monolog Handler for sending messages to Microsoft Teams channels using the Incoming WebHook connector.
Install
$ composer require culy/monolog-microsoft-teams
Usage
$logger = new \Culy\Microsoft\Teams\TeamsLogger('INCOMING_WEBHOOK_URL', \Monolog\Logger::ERROR); $logger->error('Error message');
or
$logger = new \Monolog\Logger('app'); $logger->pushHandler(new \Culy\Microsoft\Teams\TeamsLogHandler('INCOMING_WEBHOOK_URL', \Monolog\Logger::ERROR));
Usage with Laravel/Lumen framework (5.6+)
Create a custom channel
config/logging.php
'teams' => [ 'driver' => 'custom', 'via' => \Culy\Microsoft\Teams\TeamsLogChannel::class, 'level' => 'error', 'url' => 'INCOMING_WEBHOOK_URL', ],
Send an error message to the teams channel:
Log::channel('teams')->error('Error message');
You can also add teams
to the default stack
channel so all errors are automatically send to the teams
channel.
'channels' => [ 'stack' => [ 'driver' => 'stack', 'channels' => ['single', 'teams'], ], ],
Unit testing ยท PhpUnit
The tests require a valid Teams Incoming Webhook URL. To provide this URL to PhpUnit, copy phpunit.xml.dist
to phpunit.xml
and set the URL in the <php>
section. Make sure to not commit your local phpunit.xml into the repo!
<php> <env name="TEAMS_INCOMING_WEBHOOK_URL" value="https://outlook.office.com/webhook/..." /> </php>
Run the tests on the command line:
$ composer test
License
monolog-microsoft-teams is available under the MIT license. See the LICENSE file for more info.