imtigger/laravel-custom-log

Laravel 自定义日志库

1.1.0 2020-07-25 19:33 UTC

This package is auto-updated.

Last update: 2024-08-26 04:36:48 UTC


README

Laravel 失效安全自定义日志库

  • 日志到多个目标
  • 日志到控制台 (STDOUT)
  • 日志到文件
  • 日志到 MySQL
  • 日志到 Redis
  • 日志到 syslog(本地/远程)
  • 日志到 Graylog(TCP/UDP)
  • (可选) 失效安全(日志器失败时不抛出任何异常)
  • (可选) 替换 Laravel 日志(Laravel <= 5.5)
  • (可选) 注册为 Laravel 日志通道(Laravel >= 5.6)

安装

composer require imtigger/laravel-custom-log

在 Laravel 5.4 及以下版本中,将 ServiceProvider 添加到您的 config/app.php

Imtigger\LaravelCustomLog\LaravelCustomLogServiceProvider::class

发布配置

php artisan vendor:publish --provider="Imtigger\\LaravelCustomLog\\LaravelCustomLogServiceProvider" --tag=config

发布 MySQL 迁移(可选,用于日志到 MySQL)

php artisan vendor:publish --provider="Imtigger\\LaravelCustomLog\\LaravelCustomLogServiceProvider" --tag=migration

选择日志目标

将配置添加到 .env,您可以启用多个目标

控制台 (STDOUT)

  • CUSTOM_LOG_CONSOLE_ENABLE (true|false,默认=false)

文件

  • CUSTOM_LOG_FILE_ENABLE (true|false,默认=true)

MySQL

  • CUSTOM_LOG_MYSQL_ENABLE (true|false,默认=false)
  • DB_LOG_CONNECTION(在 database.php 中定义的连接,默认=mysql)
  • DB_LOG_TABLE(默认=logs)

Redis

  • CUSTOM_LOG_REDIS_ENABLE (true|false,默认=false)
  • REDIS_LOG_CONNECTION(在 cache.php 中定义的连接,默认=default)
  • REDIS_LOG_KEY

Syslog

  • CUSTOM_LOG_SYSLOG_ENABLE (true|false,默认=false)
  • CUSTOM_LOG_SYSLOG_HOST
  • CUSTOM_LOG_SYSLOG_PORT(默认=514)

Gelf(Graylog)

  • CUSTOM_LOG_GELF_ENABLE (true|false,默认=false)
  • CUSTOM_LOG_GELF_PROTOCOL(TCP|UDP,默认=UDP)
  • CUSTOM_LOG_GELF_HOST
  • CUSTOM_LOG_GELF_PORT(默认=12201)

基本用法

CustomLog::emergency($channel, $message, $context)

CustomLog::alert($channel, $message, $context)

CustomLog::critical($channel, $message, $context)

CustomLog::error($channel, $message, $context)

CustomLog::warning($channel, $message, $context)

CustomLog::notice($channel, $message, $context)

CustomLog::info($channel, $message, $context)

CustomLog::debug($channel, $message, $context)

CustomLog::log($level, $channel, $message, $context)

替换 Laravel 日志(Laravel <= 5.5)

编辑您的 bootstrap/app.php,在返回应用程序之前添加此内容

$app->configureMonologUsing(function ($monolog) {
    $monolog->pushHandler(Imtigger\LaravelCustomLog\CustomLog::getSystemHandler());
});

注册为 Laravel 日志通道(Laravel >= 5.6)

编辑您的 config/logging.php,将其添加到 channels 数组中

'customlog' => [
    'driver' => 'custom',
    'via' => Imtigger\LaravelCustomLog\CustomLog::class,
]