У меня есть модуль apache, который регистрирует некоторые строки.Если я регистрируюсь с ap_log_error
и установил LogLevel
для отладки, я вижу сообщение.Однако, если я пытаюсь использовать ap_log_perror, я вижу журналы уровня ошибок, но журналы отладки не отображаются.Кажется, что они находятся на разном уровне, но я не могу понять, как установить уровень пула (или получить его в этом отношении).
Я вижу, что есть вызов ap_get_server_module_loglevel
, но яЯ не уверен, что правильный индекс.Пытаясь 0, я вижу уровень, который я установил в верхнем уровне apache.conf (в данном случае trace1).Нет виртуальных хостов с настроенными уровнями журнала.Кажется, что каждый пул, к которому у меня есть доступ, ведет себя одинаково.
static int foo_setup_handler(apr_pool_t *pconf,
apr_pool_t *plog,
apr_pool_t *ptemp,
server_rec *s) {
int mod_log = ap_get_server_module_loglevel(s, 0);
ap_log_error(APLOG_MARK, APLOG_DEBUG, 0, s,
"Post Config server mod 0 loglevel %d",
mod_log);
ap_log_perror(APLOG_MARK, APLOG_ERR, APR_SUCCESS, pconf,
" P E++++++++++++++++");
ap_log_perror(APLOG_MARK, APLOG_DEBUG, APR_SUCCESS, pconf,
"P D conf ++++++++++++++++");
ap_log_perror(APLOG_MARK, APLOG_DEBUG, APR_SUCCESS, plog,
"P D log ++++++++++++++++");
ap_log_perror(APLOG_MARK, APLOG_WARNING, APR_SUCCESS, plog,
"P W log ++++++++++++++++");
ap_log_perror(APLOG_MARK, APLOG_DEBUG, APR_SUCCESS, ptemp,
"P D temp++++++++++++++++");
, и вот вывод в журнале ошибок.(Я удалил дату и идентификатор потока из строки ниже)
... [:debug] [pid 2..:tid 1...] mod_foo.c(123): Post Config server mod 0 loglevel 8
... [:error] [pid 2..:tid 1...] P E++++++++++++++++
... [:warn] [pid 2..:tid 1...] P W log ++++++++++++++++
есть идеи, почему сообщения журнала perror не отображаются на настроенном уровне, а отображаются на уровне WARNING или ERROR?