I have this code in an apache module I'm working on, which is registered using ap_hook_child_init():
static class_name *mc;
static void child_init(apr_pool_t *pool, server_rec *s)
{
ap_log_error(APLOG_MARK, APLOG_INFO, 0, s, "this pointer should be null: %pp", mc);
mc = mc_alloc();
ap_log_error(APLOG_MARK, APLOG_INFO, 0, s, "this pointer should not be null: %pp", mc);
}
The problem: I am not seeing these log messages!
I am certain that this function is being called and that the call to mc_alloc()
is working because when I log from other parts of the modules (like in the request handler), I see the log messages and get a valid result for the pointer. This also tells me that logging is working.
Is it my code that is wrong or my expectations? Can one not issue a log message during an ap_hook_child_init callback? If not, how else might I log that a child was init'ed?
So it turns out that this wasn't a code problem, it was a configuration problem.
In /etc/apache2/sites-enabled/my_site.conf
I had set LogLevel Info
in my <VirtualHost>
section, which apparently does not set it for the whole server.
I discovered this by changing from APLOG_INFO
to APLOG_CRIT
. Once I did that the messages appeared in the log. So I knew the server was properly logging and my code was working.
This lead me to believe that there were separate possible LogLevel settings and that I had probably been too specific with where mine was. Adding a LogLevel Info
directive outside the <VirtualHost>
section apparently was needed to set the whole server to log more messages than the default.
If you love us? You can donate to us via Paypal or buy me a coffee so we can maintain and grow! Thank you!
Donate Us With