how to use ngx_log_debug during configuration of a core module
Maxim Dounin
mdounin at mdounin.ru
Wed Mar 24 18:40:28 MSK 2010
Hello!
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
running nginx).
Maxim Dounin
More information about the nginx-devel
mailing list