osi-open-source / laravel-teams-logging
Laravel 处理器,用于通过Incoming Webhook连接器向Microsoft Teams发送消息
Requires
- php: >=7.1
- illuminate/support: *
- monolog/monolog: ^1.23|^2.0
Requires (Dev)
- ext-curl: *
- ext-json: *
- phpunit/phpunit: ^9.3
README
Laravel 处理器,通过Incoming Webhook连接器向Microsoft Teams发送消息。
安装
使用composer安装此包。
$ composer require osi-open-source/laravel-teams-logging
集成
包已在Laravel和Lumen框架(5.7+)上进行了测试并正常工作。
Laravel:安装完成后,您需要在config/app.php文件中添加以下行
\OsiOpenSource\LaravelTeamsLogging\LoggerServiceProvider::class;
Lumen:对于Lumen,您需要在bootstrap/app.php文件中添加以下行
$app->register(\OsiOpenSource\LaravelTeamsLogging\LoggerServiceProvider::class);
Laravel:然后将laravel-teams-logging中的teams配置文件复制到您的配置文件夹中
$ php artisan vendor:publish --provider="OsiOpenSource\LaravelTeamsLogging\LoggerServiceProvider"
Lumen:对于Lumen,您需要手动将文件复制到您的配置文件夹中,并在bootstrap/app.php中启用它
$app->configure('teams');
使用laravel logging文件或为Lumen创建新的日志配置文件创建一个自定义通道。
将此配置添加到config/logging.php文件中
'teams' => [ 'driver' => 'custom', 'via' => \OsiOpenSource\LaravelTeamsLogging\LoggerChannel::class, 'level' => 'debug', 'url' => env('INCOMING_WEBHOOK_URL'), 'style' => 'simple', // Available style is 'simple' and 'card', default is 'simple' ],
或简单地添加名称以指定每个连接器的不同项目名称。
'teams' => [ 'driver' => 'custom', 'via' => \OsiOpenSource\LaravelTeamsLogging\LoggerChannel::class, 'level' => 'debug', 'url' => env('INCOMING_WEBHOOK_URL'), 'style' => 'simple', // Available style is 'simple' and 'card', default is 'simple' 'name' => 'Dummy Project' ],
您可以使用LineLogger格式参数添加不同的消息数据。
'teams' => [ 'driver' => 'custom', 'via' => \OsiOpenSource\LaravelTeamsLogging\LoggerChannel::class, 'level' => 'debug', 'url' => env('INCOMING_WEBHOOK_URL'), 'style' => 'simple', // Available style is 'simple' and 'card', default is 'simple' 'name' => 'Dummy Project', 'format' => \OsiOpenSource\LaravelTeamsLogging\LoggerHandler::ADVANCED_FORMAT, //%message% %context% %extra% ],
Microsoft Teams消息有两种可用样式:简单和卡片。您可以在结果样式中看到卡片样式,它与简单样式不同。
将配置添加到您的config/logging.php文件后,将INCOMING_WEBHOOK_URL变量添加到您的.env文件中,并使用您的Microsoft Teams连接器的连接器URL。请参阅microsoft teams文档以找到您的连接器URL。
用法
要将简单的错误消息发送到teams通道,请使用以下脚本
Log::channel('teams')->error('Error message');
或者,您可以使用日志上下文将附加信息包含在卡片消息中。
Log::channel('teams')->error('Error message', [ 'Assigned to' => 'Unassigned' ]);
您还可以将teams添加到默认的stack通道,以便将所有错误自动发送到teams通道。
'channels' => [ 'stack' => [ 'driver' => 'stack', 'channels' => ['single', 'teams'], ], ],
结果
以下是使用卡片样式发送到Microsoft Teams通道的通知的一些结果。
许可证
此laravel-teams-logging软件包可在MIT许可证下使用。有关更多信息,请参阅LICENSE文件。







