2012-06-09 4 views
4

У меня есть этот код в модуль апача я работаю, который регистрируется с помощью ap_hook_child_init():ap_log_error не войдя в мой апача модуль

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); 
} 

Проблема: Я не вижу эти сообщения в журнале!

Я уверен, что эта функция вызывается и что вызов mc_alloc() работает, потому что когда я регистрируюсь из других частей модулей (например, в обработчике запросов), я вижу сообщения журнала и получаю действительный результат для указатель. Это также говорит о том, что ведение журнала работает.

Это мой код, который является неправильным или мои ожидания? Не удается ли выпустить сообщение журнала во время обратного вызова ap_hook_child_init? Если нет, как еще я могу зарегистрировать, что ребенок был инициализирован?

+0

ОК. Я сделал несколько других тестов, и я уверен, что это называется. Очевидный тест, который я сделал, состоял в том, чтобы проверить NULL в обработчике запросов, а затем прокомментировать вызов 'mc_alloc()' и повторить попытку. Результаты были разными, так что теперь я уверен. – mlibby

ответ

4

Так получилось, что это не проблема с кодом, это была проблема конфигурации.

В /etc/apache2/sites-enabled/my_site.conf Я установил LogLevel Info в разделе <VirtualHost>, который, по-видимому, не устанавливает его для всего сервера.

Я обнаружил это, изменив с APLOG_INFO на APLOG_CRIT. Как только я это сделал, сообщения появились в журнале. Поэтому я знал, что сервер был правильно зарегистрирован, и мой код работал.

Это заставило меня поверить, что были отдельные возможные настройки LogLevel и что я, вероятно, был слишком специфичен, где был мой. Добавление директивы LogLevel Info вне раздела <VirtualHost>, по-видимому, было необходимо для того, чтобы весь сервер регистрировал больше сообщений, чем по умолчанию.

Смежные вопросы