nginx init_main_conf中部分日志打印不出来的问题原因分析及解决

模块的init main configuration阶段时,用到的ngx_cycle是main函数的init_cycle(旧的),在main中init_cycle中会创建新的ngx_cycle, 之后再main中把新的cycle赋值给ngx_cycle全局变量。

而在initmain时,用的是旧的cycle(init_cycle之前), log等级为6,新创建的cycle(也就是平时用的ngx_cycle)log登记为7。所以用原来的log打印ngx_log_info会打印不出来。

解决办法:

ngx_create_pool(XXX,&cf->cycle->new_log);

newlog是新的log。