kroyeeg / laravel-teams-logging
使用Incoming Webhook连接器将消息发送到Microsoft Teams的Laravel处理器
Requires
- php: ^7.1|^8.0
- ext-curl: *
- ext-json: *
- monolog/monolog: ^1.23|^2.0
README
使用Incoming Webhook连接器将消息发送到Microsoft Teams的Laravel处理器。
安装
使用Composer安装此包。
$ composer require kroyeeg/laravel-teams-logging
集成
该包已在Laravel和Lumen框架(5.7+)上进行了测试并运行良好。
Laravel:使用Composer完成安装后,您需要将以下行添加到您的config/app.php
Kroyeeg\LaravelTeamsLogging\LoggerServiceProvider::class
Lumen:对于Lumen,您需要将以下行添加到您的bootstrap/app.php
$app->register(Kroyeeg\LaravelTeamsLogging\LoggerServiceProvider::class);
Laravel:然后从laravel-teams-logging复制teams
配置文件到您的配置文件夹
$ php artisan vendor:publish --provider="Kroyeeg\LaravelTeamsLogging\LoggerServiceProvider"
Lumen:对于Lumen,您需要手动将文件复制到您的配置文件夹,并在bootstrap/app.php
中启用它
$app->configure('teams');
使用laravel日志文件创建一个自定义通道或为Lumen创建新的日志配置文件。
将此配置添加到config/logging.php
文件
'teams' => [ 'driver' => 'custom', 'via' => \Kroyeeg\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' => \Kroyeeg\LaravelTeamsLogging\LoggerChannel::class, 'level' => 'debug', 'url' => env('INCOMING_WEBHOOK_URL'), 'style' => 'simple', // Available style is 'simple' and 'card', default is 'simple' 'name' => 'Dummy Project' ],
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', 'stack trace' => $e->getTraceAsString(), // could not set getTrace(), because may be upper limit fact value's section 'nested array' => [ // output json_encode string 'key1' => 'value1', 'key2' => 'value2', ], ]);
当使用简单样式时,日志上下文将被忽略。
您还可以将teams
添加到默认的stack
通道,以便所有错误都自动发送到teams
通道。
'channels' => [ 'stack' => [ 'driver' => 'stack', 'channels' => ['single', 'teams'], ], ],
如果您不想使用头像,请在config/teams.php中将头像设置如下
'avatars' => [ 'emergency' => '', 'alert' => '', 'critical' => '', 'error' => '', 'warning' => '', 'notice' => '', 'info' => '', 'debug' => '', ],
结果
以下是使用卡片样式发送到Microsoft Teams通道的通知的一些结果。
https://github.com/margatampu/laravel-teams-logging#results
许可证
此laravel-teams-logging软件包可在MIT许可证下使用。有关更多信息,请参阅LICENSE文件。