osi-open-source/laravel-teams-logging

Laravel 处理器,用于通过Incoming Webhook连接器向Microsoft Teams发送消息

v2.0.1 2020-11-05 12:40 UTC

This package is auto-updated.

Last update: 2024-09-05 21:22:14 UTC


README

Latest Version on Packagist Software License Total Downloads

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通道的通知的一些结果。

  • 在Microsoft Teams通道中的调试日志预览 Screenshot

  • 在Microsoft Teams通道中的信息日志预览 Screenshot

  • 在Microsoft Teams通道中的通知日志预览 Screenshot

  • 在Microsoft Teams通道中的警告日志预览 Screenshot

  • 在Microsoft Teams通道中的错误日志预览 Screenshot

  • Microsoft Teams通道中的关键日志预览 截图

  • Microsoft Teams通道中的警报日志预览 截图

  • Microsoft Teams通道中的紧急日志预览 截图

许可证

此laravel-teams-logging软件包可在MIT许可证下使用。有关更多信息,请参阅LICENSE文件。