Asf_Error_Log

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

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

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

不建议覆盖注册

Y-m-d H:i:s e | 日志级别 | 进程ID | 日志内容
2018-12-18 11:17:13 Asia/Shanghai | ERROR | 3718 | Fatal Error: Class 'Work' not found in /path/user.php on line 99
2018-12-18 11:17:13 Asia/Shanghai | ERROR | 3718 | Notice: Undefined index: xxx in /path/index.php on line 346

Asf_SQL_Log

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

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

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

Y-m-d H:i:s e | 日志级别 | 进程ID | SQL执行时间(单位: 秒) | SQL | BIND_VALUE
2018-12-18 11:17:05 Asia/Shanghai | INFO | 3717 | 0.00190 | SELECT count(*) cnt FROM `table` WHERE `status` = ? | a:1:{i:0;i:0;}
2018-12-18 11:17:05 Asia/Shanghai | INFO | 3717 | 0.00190 | SELECT * FROM `cat` WHERE `id` IN (?) | 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);