定制 fragly/laravel-extended-logger 二次开发

按需修改功能、优化性能、对接业务系统,提供一站式技术支持

邮箱:yvsm@zunyunkeji.com | QQ:316430983 | 微信:yvsm316

fragly/laravel-extended-logger

最新稳定版本:v1.0.0

Composer 安装命令:

composer require fragly/laravel-extended-logger

包简介

Advanced Laravel logger with database, Discord, Telegram, and Slack support.

README 文档

README

Packagist Version Laravel Downloads License Sponsor

Compare and safely synchronize your .env with .env.example.
Perfect for CI/CD pipelines, team development, and clean environments.

Contents

📄 Laravel Extended Logger

💡 Advanced Laravel logger that writes to Database, Discord, Telegram, and Slack — with request context (IP, user_id, route).
Replaces the monotonous Monolog output with clean, human-readable developer logs.

🚀 Features

  • 📦 Multi-channel support:

    • Database — saves logs into extended_logs table
    • Discord — sends logs to a Discord channel via webhook
    • Telegram — sends logs to a chat/group/channel via Bot API
    • Slack — sends logs via Slack webhook (optional)
  • 🧠 Automatic context enrichment:

    • Request IP address
    • Authenticated user ID
    • Current route or URI
  • 🪶 Clean, human-readable formatting

  • ⚙️ Fully configurable via .env

  • 💥 Compatible with Laravel 10, 11, and 12

⚙️ Installation

1. Install via Composer

composer require vendor/laravel-extended-logger

2. Publish config and migrations

php artisan vendor:publish --tag=extended-logger-config
php artisan vendor:publish --tag=extended-logger-migrations
php artisan migrate

3. Add a logging channel

In your config/logging.php file:

'channels' => [
    'extended' => [
        'driver' => 'extended',
    ],

    'stack' => [
        'driver' => 'stack',
        'channels' => ['extended', 'single'],
        'ignore_exceptions' => true,
    ],
]

4. Configure your .env

# Database
EXTLOG_TABLE=extended_logs
EXTLOG_DB_LEVEL=debug

# Discord
EXTLOG_DISCORD_WEBHOOK=https://discord.com/api/webhooks/xxx/yyy
EXTLOG_DISCORD_LEVEL=notice

# Telegram
EXTLOG_TELEGRAM_BOT_TOKEN=123456:AA...
EXTLOG_TELEGRAM_CHAT_ID=123456789
EXTLOG_TELEGRAM_LEVEL=warning
EXTLOG_TELEGRAM_PARSE_MODE=none

# Slack
EXTLOG_SLACK_WEBHOOK=https://hooks.slack.com/services/xxx/yyy/zzz
EXTLOG_SLACK_LEVEL=error

⚠️ Note: Log level (*_LEVEL) defines the minimum severity threshold. For example:

  • notice → catches everything from notice and above (warning, error, etc.)
  • error → catches only error, critical, alert, emergency
  • debug → catches everything

🧰 Usage

// default logger (if 'extended' is the default channel)
logger()->warning('Payment failed', ['order_id' => 123]);

// specific channel
app('log')->channel('extended')->error('Telegram error report', [
    'feature' => 'payments',
    'env' => app()->environment(),
]);

Messages are automatically sent to:

  • Database (extended_logs)
  • Discord (if enabled)
  • Telegram (if enabled)
  • Slack (if enabled)

🧠 Automatic Context

Each log entry automatically includes:

  • ip - the client IP
  • user_id - the authenticated user ID (if available)
  • route - the current request path

Example DB Record

{
  "level": "warning",
  "message": "Payment failed",
  "context": {"order_id":123},
  "extra": {"ip":"127.0.0.1","user_id":1,"route":"payments/process"}
}

💾 Log Table Migration

Schema::create('extended_logs', function (Blueprint $table) {
    $table->id();
    $table->string('level', 32);
    $table->text('message');
    $table->json('context')->nullable();
    $table->json('extra')->nullable();
    $table->string('ip', 64)->nullable();
    $table->unsignedBigInteger('user_id')->nullable();
    $table->string('route')->nullable();
    $table->timestamps();
});

🧩 Default Configuration

config/extended-logger.php

return [
    'channels' => [
        'database' => true,
        'discord'  => env('EXTLOG_DISCORD_WEBHOOK') !== null,
        'telegram' => env('EXTLOG_TELEGRAM_BOT_TOKEN') && env('EXTLOG_TELEGRAM_CHAT_ID'),
        'slack'    => env('EXTLOG_SLACK_WEBHOOK') !== null,
    ],

    'levels' => [
        'database' => env('EXTLOG_DB_LEVEL', 'debug'),
        'discord'  => env('EXTLOG_DISCORD_LEVEL', 'warning'),
        'telegram' => env('EXTLOG_TELEGRAM_LEVEL', 'error'),
        'slack'    => env('EXTLOG_SLACK_LEVEL', 'notice'),
    ],

    'table' => env('EXTLOG_TABLE', 'extended_logs'),

    'discord_webhook'  => env('EXTLOG_DISCORD_WEBHOOK'),
    'slack_webhook'    => env('EXTLOG_SLACK_WEBHOOK'),

    'telegram' => [
        'bot_token'  => env('EXTLOG_TELEGRAM_BOT_TOKEN'),
        'chat_id'    => env('EXTLOG_TELEGRAM_CHAT_ID'),
        'parse_mode' => env('EXTLOG_TELEGRAM_PARSE_MODE', 'none'),
    ],

    'format' => "[%datetime%] %level_name%: %message% %context% %extra%\n",

    'enrich_request_context' => true,
];

🧾 Example Output (Discord)

| WARNING: Rate limit hit
| 2025-10-26 14:41:36
| ip: 127.0.0.1 | route: / | ctx: {"key":"steam_api"}

🧱 Laravel Compatibility

Laravel Supported
10.x
11.x
12.x

🧑‍💻 About the Author

Fragly Dev — Building tools for modern Laravel & Next.js developers. Follow for more developer utilities, security helpers, and SaaS-ready boilerplates.

📜 License

This package is open-sourced software licensed under the MIT license.

🔍 SEO Keywords

laravel logger package, laravel logging channels, laravel custom log driver,
laravel discord logs, laravel telegram logs, laravel slack integration,
laravel database logging, laravel error tracker, laravel error reporting,
laravel monolog replacement, laravel advanced logging, laravel log formatter,
laravel request context logger, laravel log to database, laravel log to discord,
laravel log to telegram, laravel log to slack, laravel extended logger,
laravel contextual logs, laravel log middleware, laravel devops tools,
laravel production logs, laravel debugging utilities, laravel log management,
laravel error monitoring, laravel discord webhook, laravel telegram bot logs,
laravel slack webhook logs, laravel notification logs, fragly laravel logger,
fragly extended logger, fragly.net laravel packages

统计信息

  • 总下载量: 0
  • 月度下载量: 0
  • 日度下载量: 0
  • 收藏数: 0
  • 点击次数: 0
  • 依赖项目数: 0
  • 推荐数: 0

GitHub 信息

  • Stars: 0
  • Watchers: 0
  • Forks: 0
  • 开发语言: PHP

其他信息

  • 授权协议: MIT
  • 更新时间: 2025-10-26