如何关闭Laravel内部日志,仅保留自定义日志输出?
解决Laravel日志被内部日志淹没的问题
以下几种方案可以帮你只保留自定义日志,屏蔽Laravel内部生成的日志:
方案一:创建带过滤逻辑的专属自定义日志通道
修改日志配置文件
打开config/logging.php,在channels数组中添加一个新的通道,专门用于输出你的自定义日志:'custom_stderr' => [ 'driver' => 'monolog', 'handler' => StreamHandler::class, 'formatter' => env('LOG_STDERR_FORMATTER', \Monolog\Formatter\LineFormatter::class), 'with' => [ 'stream' => 'php://stderr', ], 'level' => 'warning', // 按需调整日志级别,比如只记录warning及以上 'tap' => [App\Logging\FilterInternalLogs::class], // 绑定过滤处理器 ],创建日志过滤处理器
在app/Logging目录下新建FilterInternalLogs.php文件,编写过滤逻辑,只保留你的自定义日志和业务代码产生的异常:<?php namespace App\Logging; use Monolog\Logger; class FilterInternalLogs { public function __invoke(Logger $logger) { foreach ($logger->getHandlers() as $handler) { $handler->pushProcessor(function ($record) { // 过滤vendor目录下的Laravel/Symfony等框架内部日志 if (isset($record['context']['exception']) && str_starts_with($record['context']['exception']->getFile(), base_path('vendor'))) { return false; } // 过滤框架核心命名空间的日志信息 $internalNamespaces = ['Illuminate\\', 'Laravel\\', 'Symfony\\']; foreach ($internalNamespaces as $ns) { if (str_contains($record['message'], $ns)) { return false; } } // 保留直接调用Log::xxx()的自定义日志(无异常上下文) if (empty($record['context']['exception'])) { return $record; } // 保留业务代码(app目录)产生的异常日志 if (str_starts_with($record['context']['exception']->getFile(), base_path('app'))) { return $record; } return false; }); } } }启用自定义通道
在.env文件中设置默认日志通道:LOG_CHANNEL=custom_stderr或者在调用自定义日志时明确指定通道:
Log::channel('custom_stderr')->warning('你的自定义日志内容');
方案二:修改全局异常处理器,屏蔽内部异常日志
打开app/Exceptions/Handler.php,修改report方法,只记录业务代码产生的异常:
public function report(Throwable $e) { // 仅记录app目录下代码抛出的异常,忽略框架内部异常 if (str_starts_with($e->getFile(), base_path('app'))) { parent::report($e); } }
方案三:调整日志级别减少冗余日志
在.env中设置日志级别为warning或更高(比如error),可以过滤掉大量低级别框架日志:
LOG_LEVEL=warning
注意:这个方法需要配合前面的过滤逻辑使用,否则仍会有框架产生的warning级别日志输出。
额外注意事项
- 确保
APP_DEBUG=false(你已经设置过),避免输出详细的调试栈信息。 - 清理之前设置的
error_reporting(1)和error_clear_last(),这些配置可能干扰Laravel的日志逻辑。
内容的提问来源于stack exchange,提问作者Simple Fellow
相关产品推荐
相关产品推荐

