jonathanoff2022 / laravel-telegram-logging
此包已被弃用,不再维护。没有建议的替代包。
通过Telegram机器人将日志发送到Telegram聊天
v1.7.3
2022-07-13 14:27 UTC
Requires
- php: ^7.1.3|^8
- guzzlehttp/guzzle: ^7
- illuminate/support: ^5.5 || ^6.0 || ^7.0 || ^8.0 || ^9.0
- monolog/monolog: ^1.23|^2.0
README
通过Telegram机器人将日志发送到Telegram聊天
安装
composer require jonathanoff2022/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机器人
- 前往Telegram中的 @BotFather
- 发送
/newbot
- 设置机器人的名称和bot名称。
- 获取令牌并将其添加到您的 .env 文件中(如上所述)
- 前往您的机器人并发送
/start
消息
在运行时更改日志模板
- 更改模板的配置。
config(['telegram-logger.template'=>'laravel-telegram-logging::custom'])
- 像往常一样使用
Log
为每个通道配置不同的聊天ID或令牌
- 在
config/logging.php
中为通道添加chat_id
或token
。它将覆盖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' ] ] ] ]
- 像往常一样使用
Log
Lumen支持
要使其与Lumen一起工作,您还需要执行两个步骤
- 放置包含以下代码的 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' ];
- 取消注释
$app->withFacades();
并在 bootstrap/app.php 中配置文件$app->configure('telegram-logger');
- 将默认的Laravel/Lumen日志文件放置到 config/logging.php 中(以添加新通道)
多行格式化文本
要在同一消息中添加多行,您必须添加 \n
这是因为 LineFormatter
会移除换行符。