grkamil/laravel-telegram-logging

通过Telegram机器人将日志发送到Telegram聊天

v1.11.0 2024-02-27 17:48 UTC

README

通过Telegram机器人将日志发送到Telegram聊天

安装


composer require grkamil/laravel-telegram-logging

定义Telegram机器人令牌和聊天id(用户的Telegram id),并将其设置为环境参数。添加到.env

TELEGRAM_LOGGER_BOT_TOKEN=id:token
TELEGRAM_LOGGER_CHAT_ID=chat_id

将新频道添加到config/logging.php文件中

'telegram' => [
    'driver' => 'custom',
    'via'    => Logger\TelegramLogger::class,
    'level'  => 'debug',
]

如果您的默认日志频道是堆栈,您可以将其添加到stack频道,如下所示

'stack' => [
    'driver' => 'stack',
    'channels' => ['single', 'telegram'],
]

或者您可以直接更改.env中的默认日志频道

LOG_CHANNEL=telegram

发布配置文件和视图

php artisan vendor:publish --provider "Logger\TelegramLoggerServiceProvider"

Telegram日志格式

您可以选择两种不同的格式,您可以在.env文件中指定这些格式,如下所示

# Use a minimal log template
TELEGRAM_LOGGER_TEMPLATE = laravel-telegram-logging::minimal

# Or use the backward compatible one (default setting used even without inserting this row)
TELEGRAM_LOGGER_TEMPLATE = laravel-telegram-logging::standard

您还可以创建其他blade模板,并在TELEGRAM_LOGGER_TEMPLATE条目中引用它们

创建机器人

为了使用此包,您需要创建Telegram机器人

  1. 前往Telegram中的@BotFather
  2. 发送/newbot
  3. 设置机器人的名称和机器人的名称。
  4. 获取令牌并将其添加到您的.env文件中(如下所示)
  5. 前往您的机器人并发送/start消息

在运行时更改日志模板

  1. 更改模板的配置。
config(['telegram-logger.template'=>'laravel-telegram-logging::custom'])
  1. 像往常一样使用Log

为每个频道配置不同的聊天id或令牌

  1. chat_idtoken添加到config/logging.php中的频道。覆盖config('telegram.chat_id')
[
    'channels' => [
        [
            'company' => [
                'driver' => 'custom',
                'via' => TelegramLogger::class,
                'chat_id' => env('TELEGRAM_COMPANY_CHAT_ID'),
                'token' => env('TELEGRAM_COMPANY_BOT_TOKEN'),
                'level' => 'debug'
            ],

            'operations' => [
                'driver' => 'custom',
                'via' => TelegramLogger::class,
                'chat_id' => env('TELEGRAM_OPERATIONS_CHAT_ID'),
                'token' => env('TELEGRAM_OPERATIONS_BOT_TOKEN'),
                'level' => 'debug'
            ]
        ]
    ]
]
  1. 像往常一样使用Log

Lumen支持

为了让它与Lumen一起工作,您还需要执行两个步骤

  1. 放置包含以下代码的config/telegram-logger.php文件
<?php

return [
    // Telegram logger bot token
    'token' => env('TELEGRAM_LOGGER_BOT_TOKEN'),

    // Telegram chat id
    'chat_id' => env('TELEGRAM_LOGGER_CHAT_ID'),
    
    // you can define your custom template for message
    // e.g: logging.template
    // 'template' => 'some your view path'
];
  1. 取消注释$app->withFacades();并在bootstrap/app.php中配置文件$app->configure('telegram-logger');
  2. 将默认的Laravel/Lumen日志文件放置到config/logging.php(以添加新频道)

代理支持

要使用代理服务器,请在.env中设置变量

TELEGRAM_LOGGER_PROXY=proxy_server.com:port