lavarel错误和日志记录

隆功
2023-12-01

lavarel依托Monolog库对系统进行日志处理

  1. 配置:
    (1).是否显示错误信息:config/app.php文件debug选项,决定是否向用户显示错误信息
    默认情况下设置在.env中的APP_DEBUG环境变量中。开发环境为true 生产环境false
    (2).日志存储:config/app.php文件log选项。
    日志模式有:single:
    daily:每日一个日志文件,设置保存天数限制:在APP配置文件中添加’log_max_files’ => 30
    syslog:
    errorlog:
    (3).日志等级:lavarel默认写入所有日志等级,在生产环境中,通过app.php中的log_level选项添加纪录的最低日志等级。eg: ‘log_level’ => env(‘APP_LOG_LEVEL’ , ‘errror’),
    等级(从低到高):debug , info , notice , warning , error , critical , alert , emergency;

  2. 异常处理:所有的异常都是由App\Exceptions\Handler类处理。这个类有两个方法:
    (1).report

    1.用于记录异常或将其发送到外部服务:Bugsnag或Sentry。
    2.默认下只是将异常传递给纪录异常的基类。
    3.异常 handler 的 $dontReport 属性包含不会记录的异常类型数组。

    (2).render:render 方法负责将异常转换成 HTTP 响应发送给浏览器。

  3. HTTP异常:一些异常描述了服务器的HTTP错误代码。eg:错误404,未授权错误401。
    可以手动生成异常:abort(404);
    可以提供相应文本:abort(403, ‘Unauthorized action.’);
    可以自定义错误页面,创建resources/views/errors/404.blade.php ,此文件将会渲染所有的404错误。这个目录下的视图文件与他们对应的HTTP状态码匹配。

  4. 手动纪录日志:

use Illuminate\Support\Facades\Log

Log::info(’Show me your hand’.$hand);

另外可lavarel可使用3种方法纪录:
Log::emergency();
Log::alert();
Log::critical();
Log::error();
Log::warning();
Log::notice();
Log::info();
Log::debug();

 类似资料: