错误与日志
配置文件
日志处理程序注册在启动文件 app/start/global.php
文件里面。日志都默认储存在一个单独的文件中,您可以依照实际需求自定义日志。因为 Laravel 使用了非常流行的 Monolog 日志库,您可以利用 Monolog 提供的多种方式管理你的日志。
例如,如果您想每天使用一个文件记录日志而不是使用单独的庞大文件,您可以照着下面的例子更改开始配置文件:
$logFile = 'laravel.log';
Log::useDailyFiles(storage_path().'/logs/'.$logFile);
错误显示
错误显示默认为开启,意味着当错误发生时,将有错误页面显示详细的调用追踪和错误信息。您可以关掉错误显示 的选项,把app/config/app.php
里的debug
选项改成false
。
注意
强烈建议在生产环境中关掉错误显示。
错误处理
app/start/global.php
里默认有一个处理所有异常的异常处理程序:
App::error(function(Exception $exception)
{
Log::error($exception);
});
这是最基本的异常处理程序,然而您可以依照需求设定更多异常处理程序。异常处理程序会依照异常的类型提示( type-hint )被调用。例如,您可以创造一个只处理RuntimeException
的异常处理程序:
App::error(function(RuntimeException $exception)
{
// Handle the exception...
});
如果异常处理程序回传一个 response,response 会直接回传到浏览器,而其他异常处理程序将不会被调用:
App::error(function(InvalidUserException $exception)
{
Log::error($exception);
return 'Sorry! Something is wrong with this account!';
});
为了监听 PHP fetal errors,您可以利用App::fatal
方法:
App::fatal(function($exception)
{
//
});