kroyeeg/laravel-teams-logging

使用Incoming Webhook连接器将消息发送到Microsoft Teams的Laravel处理器

v2.2.1 2021-12-23 02:28 UTC

This package is not auto-updated.

Last update: 2024-09-26 17:00:35 UTC


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文件。