日志未写入主因是config:cache未清、storage/logs权限不足或LOG_LEVEL设为error;需依次检查LOG_CHANNEL配置、清缓存、修正目录权限,并确认stack通道包含有效子通道及LOG_LEVEL级别匹配。
日志根本没写进去,90% 是
没清、
权限不对,或者
被设成了
—— 不是代码漏写了
,而是环境卡住了输出。
storage/logs/
laravel
.log 为空?先查这三件事
常见现象:调了
,但
里啥也没有;或只在本地有日志,上线后就消失。
配置是否生效?检查
中是否写了
(或
),并确认
里对应 channel 的
确实指向
配置缓存是否过期?改完
或
后,必须运行
—— 开发中别跳这步,
反而可能锁死新配置
目录权限够吗?Linux 下常见错误是 Web 用户(如
)无写入权,用
看属组,再执行
和
tail -f 看不到实时日志?别急着重装包
现象:执行
报错 “command not found”,或运行后没输出、卡住、中途断连。
确认是否已安装官方推荐的
(不是 Laravel 自带命令);
后还要
命令依赖日志文件存在且持续写入,如果
本身为空,
就会静默等待——先手动触发一次
确保有内容
宝塔等面板环境常因日志文件过大(>100MB)导致
失效,可临时用
验证基础读取能力
ERROR 找得到,但 DEBUG/INFO 不见?看 LOG_LEVEL 和通道定义
现象:
不落盘,但
正常;或
通道写进去了,
却没反应。
Laravel 13.2.0
PHP中文网提供Laravel 13.2.0版本下载,Laravel框架 是基于 PHP 8.3+ 的高性能框架,官方推荐通过 Composer 安装。它内置 AI SDK、JSON:API Resources 及原生向量搜索,支持属性驱动开发与队列路由,大幅提升开发效率。相比旧版,13.2.0 优化了缓存 TTL 管理与实时通信,无需 Redis 即可横向扩展。作为现代 Web 开发首选,它兼顾安全与极速体验,助您快速构建企业级应用。
下载
默认是 production 环境下的
,开发时务必设为
,否则
/
级别直接被过滤掉
通道是聚合器,它是否包含
或
?打开
查
,如果写成
而实际没定义
channel,日志就丢了
Monolog 的
是「最低记录级别」,
表示
及以上(
、
……)都记;
则
/
全部静音
线上不敢开 APP_DEBUG=true,怎么快速定位 500 错误?
现象:生产环境页面空白或 500,浏览器看不到任何提示,但
里也没
记录。
先确认异常是否被
拦截却没上报——检查
方法里有没有漏掉
,或加了
提前退出
某些中间件(如 JWT 验证、权限校验)抛出的异常若未被
显式处理,也可能静默吞掉,建议在
开头加一行
如果用了队列任务,错误默认不进主日志,要查
或监听
最常被忽略的一点:日志写入失败时,Laravel 默认不会报错,也不会 fallback 到其他通道——它就真的沉默了。所以每次部署后,务必手动触发一条
并立刻去文件里确认是否落地。
config:cachestorage/logsLOG_LEVELerrorLog::info()Log::error('test')storage/logs/laravel.logLOG_CHANNEL.envLOG_CHANNEL=stacksingleconfig/logging.phppathstorage_path('logs/laravel.log').envconfig/logging.phpphp artisan config:clearconfig:cachestorage/logs/www-datals -l storage/logschmod -R 755 storage/logschown -R www-data:www-data storage/logsphp artisan tailspatie/laravel-tailcomposer require spatie/laravel-tailphp artisan vendor:publish --provider="Spatie\Tail\TailServiceProvider"taillaravel.logtail -fLog::info('ping')tailtail -n 50 storage/logs/laravel.logLog::debug()Log::error()dailystackLOG_LEVELerrordebugdebuginfostacksingledailyconfig/logging.php'stack' => ['channels' => ['single']]['files']fileslevellevel => 'debug'debuginfoerrorlevel => 'error'debuginfolaravel.logERRORapp/Exceptions/Handler.phpreport()parent::report($exception)returnrender()report()Log::emergency('Unhandled exception: ' . $exception->getMessage());storage/logs/queue-*.logIlluminate\Queue\Events\JobFailedLog::info('deploy-' . now()->timestamp)