nginx error_log 日志配置

关于 error_log 指令的解析


---- nginx-1.0.9 ---

error_log 配置:
error_log logs/xxx.log error | debug_core | debug_alloc

main()
{
    //...
    prefix = ./configure --prefix
    ngx_init_cycle(ngx_cycle_t *old_cycle)
    {
        log.log_level = NGX_LOG_NOTICE;
        log = ngx_log_init() = $prefix + NGX_ERROR_LOG_PATH  = $prefix/logs/error.log;
        ngx_conf_param(ngx_conf_t *cf)
        {
            ngx_error_log()
            {
                cycle->new_log = $conf_prefix/logs/xxx.log 或者 $prefix/logs/xxx.log;
                ngx_log_set_levels()
                {
                    value = cf->args->elts;


                    /* 从这段代码上看: 
                       error_log 指令的日志级别配置分为 错误日志级别和调试日志级别
                       且 错误日志只能设置一个级别 且 错误日志必须书写在调试日志级别的前面 且 调试日志可以设置多个级别
                       其他配置方法可能达不到你的预期.
                     */
                    for (i = 2; i < cf->args->nelts; i++) {
                        found = 0;
                        for (n = 1; n <= NGX_LOG_DEBUG; n++) {
                            if (ngx_strcmp(value[i].data, err_levels[n].data) == 0) { /* 这里匹配的是 错误日志级别 */
                                log->log_level = n;
                                found = 1;
                                break;
                            }
                        }


                        for (n = 0, d = NGX_LOG_DEBUG_FIRST; d <= NGX_LOG_DEBUG_LAST; d <<= 1) { /* 这里匹配的是 调试日志级别 */
                            if (ngx_strcmp(value[i].data, debug_levels[n++]) == 0) {
                                log->log_level |= d;
                                found = 1;
                                break;
                            }
                        }
                    }
                    if (log->log_level == NGX_LOG_DEBUG) {
                        log->log_level = NGX_LOG_DEBUG_ALL;
                    }


                    return NGX_CONF_OK;
                }
            }
        }


        cycle->log = &cycle->new_log;
        pool->log = &cycle->new_log;


    }
    //...
}



-----------
总结
语法:
error_log file [ debug | info | notice | warn | error | crit ]  | [{  debug_core | debug_alloc | debug_mutex | debug_event | debug_http | debug_mail | debug_mysql } ]
日志级别 = 错误日志级别 | 调试日志级别; 或者
日志级别 = 错误日志级别;
错误日志的级别: emerg, alert, crit, error, warn, notic, info, debug, 
调试日志的级别: debug_core, debug_alloc, debug_mutex, debug_event, debug_http, debug_mail, debug_mysql,


error_log 指令的日志级别配置分为 错误日志级别和调试日志级别
且 错误日志只能设置一个级别 且 错误日志必须书写在调试日志级别的前面 且 调试日志可以设置多个级别
其他配置方法可能达不到你的预期.

你可能感兴趣的:(nginx,mysql,File,Path)