Asf_Error_Log

如果 asf.dispatcher.log.err = 1, 框架会自动注册了 set_error_handler, set_exception_handler

默认在 asf.log_path 目录下生成文本文件 Asf_Error_Log, 分级别记录日志信息

开发者可以分析日志记录的异常信息, 做预警, 这些都变得很简单

不建议覆盖注册

14-Jun-2018 14:48:49 Asia/Shanghai [NOTICE] Notice: Undefined index: xxx in /path/index.php on line 346 
15-Jun-2018 15:55:31 Asia/Shanghai [ERROR] Fatal Error: Class 'Work' not found in /path/user.php on line 99

Asf_SQL_Log

如果 asf.dispatcher.log.sql = 1, 框架自动记录DB操作的(CURD)SQL语句

默认在 asf.log_path 目录下生成文本文件 Asf_SQL_Log

日志格式: DateTime [INFO] (SQL执行耗时, 单位: 毫秒时间戳) SQL语句 [:BVALUE] SQL绑定的值

03-May-2018 18:27:30 Asia/Shanghai [INFO] (0.000516) SELECT count(*) cnt FROM `table` WHERE `status` = ? [BVALUES] a:1:{i:0;i:0;} 
03-May-2018 18:27:30 Asia/Shanghai [INFO] (0.000772) SELECT * FROM `cat` WHERE `id` IN (?) [BVALUES] a:1:{i:0;s:3:"409";} 

999 特殊错误码

999 这是一个有意义的错误号, 暂不支持自定义

如果开启配置项 asf.dispatcher.log.err = 1, 框架会拦截异常信息, 很好的保护服务端隐私, 而且又聪明地告知了开发人员

1. 当程序执行中出现异常时, 如果 asf.ctype_id = 5 (默认值), 返回结果如下:

<?php
{
    "errno": 999,
    "data": ""
}

2. 当程序执行中出现异常时, 如果 asf.ctype_id = 1, 返回结果如下:

<?php
{
    "errno": 999,
    "errmsg": "",
    "data": ""
}

Remark

以下设置不会影响程序异常日志的记录, 异常情况的拦截

<?php
ini_set('display_errors', 0);
error_reporting(0);