如何通过aplog_error在Apache模块中获取日志行中的模块名称?

wecizke3  于 2023-05-07  发布在  Apache
关注(0)|答案(1)|浏览(135)

想从我的Apache模块中获取更多的错误日志行的细节。
目前我正在使用这个来记录一个错误的请求:

ap_log_error(APLOG_MARK, APLOG_ERR, 400, r->server,"error msg");

这导致错误日志文件中出现以下情况:

[Wed Nov 09 14:17:08.429009 2022] [:error] [pid 765] (400)Unknown error 400: error msg

希望在“:error”的左侧有一个标识符,如模块名称,并且如果可能的话,还希望“未知错误”更具体,如“Bad Request”或文件行号。如果可能,更像下面的行加上文件和行号:

[Wed Nov 09 13:56:51.902728 2022] [core:notice] [pid 757] AH00094: Command line: '/usr/sbin/apache2'

根据https://svn.apache.org/viewvc/httpd/httpd/trunk/include/http_log.h?view=markup
APLOG_MARK应该是一个宏,用作ap_log_error()和相关函数中的前三个参数,即file、line和module_index。
但是,在我的日志行中没有文件、行或模块索引。
谢谢

vbopmzt1

vbopmzt11#

Apache 2.4标准化了模块顶部的module AP_MODULE_DECLARE_DATA foo_module。宏依赖于它。

相关问题