imtigger / laravel-custom-log
Laravel 自定义日志库
Requires
- php: >=7.0.0
Suggests
- graylog2/gelf-php: Required for Gelf/Graylog logging
- predis/predis: Required for Redis logging
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,
]