Laravel8学习笔记-日志组件

IT小马 -
Laravel8学习笔记-日志组件
配置配置文件 config/logging.php

默认情况下,Laravel 使用 stack 通道来记录日志信息,stack 通道被用于聚合多个日志通道到单个通道。

例:single通道默认写入larave.log文件,daily通道默认写入larave-*.log文件,若配置stack如下

'stack' => [
  'driver' => 'stack',
  'channels' => ['single','daily'],
]

则日志会同时写入larave.log和larave-*.log文件

日志级别LOG_LEVEL=debug 日志信息被通道记录所必须达到的最低「级别」

emergencyalertcriticalerrorwarningnoticeinfodebug

假设LOG_LEVEL=error,则Log::debug('An informational message.');不会记录日志

写入日志信息
Log::emergency($error);
Log::alert($error);
Log::critical($error);
Log::error($error);
Log::warning($error);
Log::notice($error);
Log::info($error);
Log::debug($error);
写入上下文信息
Log::info('User failed to login.', ['id' => 123]);

//local.INFO: User failed to login. {"id":123} 
写入指定通道
'test' => [
  'driver' => 'single',
  'path' => storage_path('logs/laravel.log'),
],

Log::channel('test')->info('Something happened!');
通道自定义
'single' => [
    'driver' => 'single',
    'tap' => [App\Logging\CustomizeFormatter::class],
    'path' => storage_path('logs/laravel.log'),
    'level' => 'debug',
],
注:所有「tap」类都通过服务容器解析,所以他们需要的所有构造函数依赖都会被自动注入。
<?php

namespace App\Logging;

use Monolog\Formatter\LineFormatter;

class CustomizeFormatter
{
    /**
     * Customize the given logger instance.
     *
     * @param  \Illuminate\Log\Logger  $logger
     * @return void
     */
    public function __invoke($logger)
    {
        foreach ($logger->getHandlers() as $handler) {
            $handler->setFormatter(new LineFormatter(
                '[%datetime%] %channel%.%level_name%: %message% %context% %extra%'
            ));
        }
    }
}
特别申明:本文内容来源网络,版权归原作者所有,如有侵权请立即与我们联系(cy198701067573@163.com),我们将及时处理。

laravel介绍

Laravel是一套简洁、优雅的PHP Web开发框架(PHP Web Framework)。它可以让你从面条一样杂乱的代码中解脱出来;它可以帮你构建一个完美的网络APP,而且每行代码都可以简洁、富于表达力。在Laravel中已经具有了一套高级的PHP ActiveRecord实现 -- Eloquent ORM。它能方便的将“约束(constraints)”应用到关系的双方,这样你就具有了对数

Tags 标签

phplaravel

扩展阅读

加个好友,技术交流

1628738909466805.jpg