how to use ngx_log_debug during configuration of a core module
mdounin at mdounin.ru
Wed Mar 24 18:40:28 MSK 2010
On Wed, Mar 24, 2010 at 03:56:34PM +0100, Manlio Perillo wrote:
> -----BEGIN PGP SIGNED MESSAGE-----
> Hash: SHA1
> Maxim Dounin ha scritto:
> > Hello!
> > On Wed, Mar 24, 2010 at 03:04:00PM +0100, Manlio Perillo wrote:
> >> I'm having some troubles at using ngx_log_debug during configuration of
> >> a core module I'm writing.
> >> I want to output some log info in the init_conf callback function but:
> >> * If I use cycle->log, the error level is fixed and set to NGX_LOG_INFO,
> >> so debug info will never be logged
> >> * If I use cycle->new_log, the error level is correctly set, but no info
> >> is logged to the file.
> >> If I set log destination to "stderr", info is correctly logged
> >> Should I simply use ngx_log_error(NGX_LOG_INFO, cycle->log)?
> > Yes.
> Tried rigth now, and it does not work.
> I have logged the log name and fd of cycle->log, and I have:
> log->name: (null), log->fd: 3
> The cycle->new_log, instead, have:
> log->name: /usr/local/nginx/logs/error.log, log->fd: -1
> It seems that the log object is not fully configured, when module init
> callbacks are called.
I've just tested and looked through code - module init callbacks
(init_module member of ngx_module_t structure) are called after
full configuration has been initialized (including logs) and even
debug works perfectly using cycle->log (once you have error_log
... debug; configured at top level).
>From data you provide it looks like you in fact use create_conf
or init_conf callbacks of ngx_core_module_t structure.
You still should be able to use ngx_log_error(cycle->log), though
level is initialized to NGX_LOG_NOTICE by default (so it's minimum
level which will be logged unless you are reconfiguring already
More information about the nginx-devel