我在我正在处理的apache模块中有这个代码,它是使用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);
}
Run Code Online (Sandbox Code Playgroud)
问题:我没有看到这些日志消息!
我确信正在调用此函数并且调用mc_alloc()正在工作,因为当我从模块的其他部分(如请求处理程序)中进行日志记录时,我会看到日志消息并获得指针的有效结果.这也告诉我日志记录正在运行.
这是我的代码错了还是我的期望?可以在ap_hook_child_init回调期间不发出日志消息吗?如果没有,我怎么能记录孩子的初始化?
事实证明,这不是代码问题,而是配置问题.
在我的部分中/etc/apache2/sites-enabled/my_site.conf设置,显然没有为整个服务器设置它.LogLevel Info<VirtualHost>
我发现这是从改变APLOG_INFO到APLOG_CRIT.一旦我这样做,消息就会出现在日志中.所以我知道服务器正在正确登录,我的代码正常运行.
这让我相信有可能存在单独的LogLevel设置,而且我可能对我的位置过于具体.显然需要LogLevel Info在该<VirtualHost>部分之外添加指令来将整个服务器设置为记录比默认消息更多的消息.
| 归档时间: |
|
| 查看次数: |
4839 次 |
| 最近记录: |