alpha-dev-team / logger
通过数据库记录、Telegram 和文件进行日志记录。基于 Laravel 日志记录器。
Requires
- php: ^8.1
- laravel/framework: ^10.0
Requires (Dev)
- orchestra/testbench: 8.*
README
需求
- PHP v8.1+
描述
通过数据库记录、Telegram 和文件进行日志记录。基于标准 Laravel 日志记录器。它还使用了 Monolog 库。Alpha-Dev-Logger 还附带一个简单的管理面板,用于读取、更改状态和删除日志记录。
安装
第一步是通过 Composer 命令安装 Alpha-Dev-Logger。
composer require alpha-dev-team/logger
下一步重要的步骤是发布配置文件 logger-alpha.php。
php artisan vendor:publish --tag=logger-config --force
还需要运行迁移以创建新的日志表。
php artisan migrate
配置
常规
由于 Alpha-Dev-Logger 基于 Laravel 标准日志记录器,需要在 logging.php 中的 channels 数组中进行一些配置。为了方便,所有必要的更改都包含在 logger-alpha.php 中的 channels 数组中。
数据库
在 logging.php 中的 channels 设置(您可以在 logger-alpha.php 中的 channels 数组中找到它)。
'db' => [ 'driver' => 'custom', 'via' => \AlphaDevTeam\Logger\Logging\AlphaDevDBLogger::class, 'level' => env('LOG_LEVEL', 'debug'), ],
Telegram
如果您想将日志错误发送到 Telegram 频道,请在 logging.php 中的 channels 设置(您可以在 logger-alpha.php 中的 channels 数组中找到它)。
'telegram' => [ 'driver' => 'custom', 'via' => \AlphaDevTeam\Logger\Logging\AlphaDevTelegramLogger::class, 'level' => env('LOG_LEVEL', 'debug'), ],
为了使用 Telegram 通知,您需要在 .env 文件中确定和设置 Telegram API Bot 和 Telegram 频道名称。
LOG_TELEGRAM_BOT_API=999999999:AAAAAAAsAAA9AaAAAaaaAaAaAaAAA99aAaa LOG_TELEGRAM_CHANNEL=telegram_channel
此外,您还可以在 logger-alpha.php 中对 Telegram 消息视图进行一些更改。
每日文件
如果您想将日志错误保存到 JSON 格式的文件中,请在 logging.php 中的 channels 设置(您可以在 logger-alpha.php 中的 channels 数组中找到它)。
'daily' => [ 'driver' => 'daily', 'path' => storage_path('logs/daily/laravel.log'), 'tap' => [\AlphaDevTeam\Logger\Logging\AlphaDevLogJson::class], 'level' => env('LOG_LEVEL', 'debug'), 'days' => 14, ],
daily 数组中的 days 参数设置了文件保留期。您可以设置其他值。
常规
最后,请确保在 .env 文件中将当前日志通道设置为 stack。
LOG_CHANNEL=stack
最后一步。将您要使用的通道添加到 logging.php 中的 channels.stack.channels 数组。
'stack' => [ 'driver' => 'stack', 'channels' => ['daily', 'db', 'telegram'], 'ignore_exceptions' => false, ],
面板
Alpha-Dev-Logger 附带一个简单的管理面板,用于读取、更改状态和删除日志记录。您可以在 logger-alpha.php 中对面板路由进行一些更改。
新鲜日志
要刷新日志数据库,请使用特殊命令 RefreshLogsTable。您可以在 logger-alpha.php 中的 db.remove_in_months 设置边缘日期时间以软删除记录和完全删除记录的边缘日期时间。
此外,您还可以将此命令添加到 App\Console\Kernel 中的 Task Scheduling 的 schedule 方法中。例如,每月一次。
$schedule->command('refresh-logs:run')->monthly();