Apache 调试日志
错误日志通常是一个文件,可以通过一个有系统管理员在Apache配置好的日志器来访问。
当必须报告错误诊断信息时,模块可以而且应该写信息到错误日志中。
错误日志的API在http_log.h中定义,
AP_DECLARE(void) ap_log_rerror_(const char *file, int line, int module_index,
int level, apr_status_t status,
const request_rec *r, const char *fmt, ...)
前三个参数可以使用宏定义
#define APLOG_MARK __FILE__,__LINE__,APLOG_MODULE_INDEX
level参数
#define APLOG_EMERG 0 /* system is unusable */
#define APLOG_ALERT 1 /* action must be taken immediately */
#define APLOG_CRIT 2 /* critical conditions */
#define APLOG_ERR 3 /* error conditions */
#define APLOG_WARNING 4 /* warning conditions */
#define APLOG_NOTICE 5 /* normal but significant condition */
#define APLOG_INFO 6 /* informational */
#define APLOG_DEBUG 7 /* debug-level messages */
#define APLOG_TRACE1 8 /* trace-level 1 messages */
#define APLOG_TRACE2 9 /* trace-level 2 messages */
#define APLOG_TRACE3 10 /* trace-level 3 messages */
#define APLOG_TRACE4 11 /* trace-level 4 messages */
#define APLOG_TRACE5 12 /* trace-level 5 messages */
#define APLOG_TRACE6 13 /* trace-level 6 messages */
#define APLOG_TRACE7 14 /* trace-level 7 messages */
#define APLOG_TRACE8 15 /* trace-level 8 messages */
系统管理员可以通过配置日志级别来决定那些信息将被记录到日志。只有那些优先级别高于预先定义级别的信息才会被记录,其他信息将被忽略。
日志函数的第5个参数是一个描述符对象:服务器、连接池或者请求池。
剩下的参数和printf一样,输出错误字符。
下面是一个例子