laravel debug 模式中debug不装可以吗

错误与日志
应用程序的日志功能配置在 Illuminate\Foundation\Bootstrap\ConfigureLogging 启动类中。这个类使用 config/app.php 配置文件的 log 配置选项。
日志工具默认使用每天的日志文件;然而,你可以依照需求自定义这个行为。因为 Laravel 使用流行的
日志函数库,你可以利用很多 Monolog 提供的处理进程。
例如,如果你想要使用单一日志文件,而不是每天一个日志文件,你可以对 config/app.php 配置文件做下面的变更:
'log' =& 'single'
Laravel 提供立即可用的 single 、daily 、syslog 和 errorlog 日志模式。然而,你可以通过覆写 ConfigureLogging 启动类,依照需求自由地自定义应用程序的日志。
config/app.php 配置文件的 app.debug 配置选项控制应用程序透过浏览器显示错误细节。配置选项默认参照 .env 文件的 APP_DEBUG 环境变量。
进行本地开发时,你应该配置 APP_DEBUG 环境变量为 true 。 在上线环境,这个值应该永远为 false 。
所有的异常都由 App\Exceptions\Handler 类处理。这个类包含两个方法: report 和 render 。
report 方法用来记录异常或把异常传递到外部服务,例如:
。默认情况下, report 方法只基本实现简单地传递异常到父类并于父类记录异常。然而,你可以依你所需自由地记录异常。如果你需要使用不同的方法来报告不同类型的异常,你可以使用 PHP 的 instanceof 比较运算符:
* 报告或记录异常。
* 这是一个发送异常到 Sentry、Bugsnag 等服务的好地方。
\Exception
* @return void
public function report(Exception $e)
if ($e instanceof CustomException)
return parent::report($e);
render 方法负责把异常转换成应该被传递回浏览器的 HTTP 响应。默认情况下,异常会被传递到基础类并帮你产生响应。然而,你可以自由的检查异常类型或返回自定义的响应。
异常处理进程的 dontReport 属性是个数组,包含应该不要被纪录的异常类型。由 404 错误导致的异常默认不会被写到日志文件。你可以依照需求添加其他类型的异常到这个数组。
有一些异常是描述来自服务器的 HTTP 错误码。例如,这可能是个「找不到页面」错误 (404)、「未授权错误」(401),或甚至是工程师导致的 500 错误。使用下面的方法来返回这样一个响应:
abort(404);
或是你可以选择提供一个响应:
abort(403, 'Unauthorized action.');
你可以在请求的生命周期中任何时间点使用这个方法。
自定义 404 错误页面
要让所有的 404 错误返回自定义的视图,请建立一个 resources/views/errors/404.blade.php 文件。应用程序将会使用这个视图处理所有发生的 404 错误。
Laravel 日志工具在强大的
函数库上提供一层简单的功能。Laravel 默认为应用程序建立每天的日志文件在 storage/logs 目录。你可以像这样把信息写到日志:
Log::info('This is some useful information.');
Log::warning('Something could be going wrong.');
Log::error('Something is really going wrong.');
日志工具提供定义在
的七个级别:debug、info、notice、warning、error、critical 和 alert。
也可以传入上下文相关的数据数组到日志方法里:
Log::info('Log message', ['context' =& 'Other helpful information']);
Monolog 有很多其他的处理方法可以用在日志上。如有需要,你可以取用 Laravel 底层使用的 Monolog 实例:
$monolog = Log::getMonolog();
你也可以注册事件来捕捉所有传到日志的消息:
注册日志事件监听器
Log::listen(function($level, $message, $context)
Laravel is a trademark of Taylor Otwell. Copyright & Taylor Otwell.  后台操作数据库时经常会在数据和Excel之间进行大量地导入导出操作,从我的亲身经历来看最近导表也不下百份,以往的shell脚本已经不能满足现在的需求了,所以刚好就碰到了Laravel Excel这款强大的工具,不过网上的资料也许太多导致之前安装都出了一些问题,所以专程记录一下避免以后再绕弯路。
  之前我把Excel数据导入数据库都是通过shell脚本处理,先把excel的内容拷贝到一个txt文档里,注意所有的excel单位格必须填充内容(null值填写为'空'或者'无'),然后所有数据不能换行,并且去除txt文件如 &,&&和空格这些符号,最后再用readline方法,以' & &'为分隔符获取每一列的数据:
cat temp.txt|awk 'NR&1'|while read line
myDate=`echo $line|awk -F'
' '{printf("%s",$1)}'`
myIn=`echo $line|awk -F'
' '{printf("%s",$2)}'`
myOut=`echo $line|awk -F'
' '{printf("%s",$3)}'`
remark=`echo $line|awk -F'
' '{printf("%s",$4)}'`
'mysql -hxxx -uxxx -pxxx --default-character-set=utf8'-N -e"   insert into t_record(myDate,myIn,myOut,remark) values('$myDate','$myIn','$myOut','$remark');  "
  这种方法比较复杂,对txt的要求比较高,一旦数据量大一些或者存在换行的情况就十分容易出错,恰好自己现在开发的项目用到Laravel框架,所以就索性全部用其自带的Excel来完优化导表过程吧。
  安装:
  Laravel Excel是一款既可以执行Excel数据导入也可以执行Excel导出的工具,其官方文档可以参考。在安装这个插件之前首先确保你的电脑或者服务器安装了composer,没安装的可以参考,当你在命令行下输入composer出现几个大大的Composer时说明已经安装成功了。
  首先打开要添加插件的那个项目的composer.json文件,由于我当时用的是Lavarel4所以在require部分添加''maatwebsite/excel'':''~1.3'',如果是Laravel5则添加 & &''maatwebsite/excel'':''~2.1.0'',随后执行composer update命令就可以把所需要的文件夹下载到你的项目中。值得注意的是如果你只想更新Excel这个插件 可以直接执行 &&composer update maatwebsite/excel 命令,因为执行composer update会把所有需要更新的内容都update一遍,网络差,耗时长的情况下简直是噩梦,所以建议需要哪个东西才更新哪个,不要一下子全部更新了。
  更新成功后,在你的vendor目录下会出现maatwebsite和phpoffice这两个文件夹,如果没有继续回去更新吧(试试国内的镜像)。然后在config/app.php内引入两行说明:
在providers的数组里添加'Maatwebsite\Excel\ExcelServiceProvider'
在aliases里添加'Excel' =& 'Maatwebsite\Excel\Facades\Excel'
  最后再在项目的根目录下执行php artisan config:publish maatwebsite/excel命令,如果是5则执行php artisan vendor:publish就完成整个安装过程,其实整个过程并不复杂,只要看到那两个文件夹出现了,就有十之八九了。
  使用:
首先在具体的Controller的Php文件里加上 use Maatwebsite\Excel\Facades\E
然后可以通过创建一个Excel对象或者直接调用Excel类里的方法来实现导出导入功能
//创建对象导入数据(类的话直接使用 Excel::load()方法)
$excel = App::make('excel');//excel类
$excel-&load("/temp.xlsx", function($reader) //reader读取excel内容
$reader = $reader-&getSheet(0);//excel第一张sheet
$results = $reader-&toArray();
unset($results[0]);//去除表头
if ($results)
foreach ($results as $key =& $value)
$data = [];
$data['myDate'] = $value[0] == null ? '':trim($value[0]);
$data['myIn'] = $value[1] == null ? '' : trim($value[1]);
$data['myOut'] = $value[2] == null ? '' : trim($value[2]);
$data['remark'] = $value[3] == null ? '' : trim($value[3]);
$res = DB::table('t_record')-&insertGetId($data);
//使用类的方法导出excel//创建一个文件并导出
$test='第一个位置';
Excel::create("new.xlsx", function($excel) use($test)
//创建sheet
$excel-&sheet('sheet1',function($sheet)
use($test)
//填充每个单元格的内容
$sheet-&cell('A1',function($cell) use ($test)
$cell-&setValue($test);
})-&export('xls');
//读取一个文件并导出
Excel::load("new.xlsx", function($excel)
//读取sheet
$excel-&sheet('sheet1',function($sheet)
//修改每个单元格的内容
$sheet-&cell('A1',function($cell)
$cell-&setValue('1');
})-&export('xls');
除此之外还有例如为excel设置标题、字体大小、单元格的大小、背景颜色、宽度、高度、水平、垂直居中、外边距、内边距等等,功能十分强大,让你感觉你不仅仅是在导出一个excel而是在写一个html+css的页面,具体的需求功能可以参考其API文档。好了,以后的excel与数据库的交互不用愁了!!
阅读(...) 评论()

我要回帖

更多关于 laravel 开启debug 的文章

 

随机推荐