CHANGE: Replace req_id with query and fragment fields

- Remove req_id field (r->log_id) from JSON output
- Add query field (r->parsed_uri.query) - query string without '?'
- Add fragment field (r->parsed_uri.fragment) - fragment without '#'
- Update architecture.yml documentation
- Bump version to 1.0.9

Co-authored-by: Qwen-Coder <qwen-coder@alibabacloud.com>
This commit is contained in:
Jacquin Antoine
2026-03-02 21:07:22 +01:00
parent 8a8ee8c6b1
commit e606e7760f
3 changed files with 38 additions and 32 deletions

View File

@ -670,8 +670,8 @@ static void log_request(request_rec *r, reqin_log_config_t *cfg, reqin_log_child
const char *http_version;
const char *scheme;
const char *unparsed_uri;
const char *args;
const char *req_id;
const char *query;
const char *fragment;
const char *content_length_str;
apr_int64_t content_length;
@ -726,15 +726,19 @@ static void log_request(request_rec *r, reqin_log_config_t *cfg, reqin_log_child
unparsed_uri = apr_pstrmemdup(pool, unparsed_uri, 2048);
}
/* args (query string) */
args = r->args ? r->args : "";
/* Sanitize args to prevent oversized values */
if (strlen(args) > 2048) {
args = apr_pstrmemdup(pool, args, 2048);
/* query (query string from parsed URI, e.g., ?foo=bar) */
query = r->parsed_uri.query ? r->parsed_uri.query : "";
/* Sanitize query to prevent oversized values */
if (strlen(query) > 2048) {
query = apr_pstrmemdup(pool, query, 2048);
}
/* req_id (unique request identifier from Apache) */
req_id = r->log_id ? r->log_id : "";
/* fragment (fragment from parsed URI, e.g., #section) */
fragment = r->parsed_uri.fragment ? r->parsed_uri.fragment : "";
/* Sanitize fragment to prevent oversized values */
if (strlen(fragment) > 2048) {
fragment = apr_pstrmemdup(pool, fragment, 2048);
}
/* content_length (from Content-Length header) */
content_length_str = apr_table_get(r->headers_in, "Content-Length");
@ -770,11 +774,6 @@ static void log_request(request_rec *r, reqin_log_config_t *cfg, reqin_log_child
dynbuf_append(&buf, ",", 1);
}
/* req_id (unique request identifier) */
dynbuf_append(&buf, "\"req_id\":\"", 9);
append_json_string(&buf, req_id);
dynbuf_append(&buf, "\",", 2);
/* scheme (http or https) */
dynbuf_append(&buf, "\"scheme\":\"", 10);
append_json_string(&buf, scheme);
@ -825,13 +824,18 @@ static void log_request(request_rec *r, reqin_log_config_t *cfg, reqin_log_child
append_json_string(&buf, unparsed_uri);
dynbuf_append(&buf, "\",", 2);
/* args (query string) */
dynbuf_append(&buf, "\"args\":\"", 8);
append_json_string(&buf, args);
/* query (query string without leading ?, e.g., foo=bar) */
dynbuf_append(&buf, "\"query\":\"", 8);
append_json_string(&buf, query);
dynbuf_append(&buf, "\",", 2);
/* fragment (fragment without leading #, e.g., section) */
dynbuf_append(&buf, "\"fragment\":\"", 11);
append_json_string(&buf, fragment);
dynbuf_append(&buf, "\"", 1);
/* host */
dynbuf_append(&buf, "\"host\":\"", 8);
dynbuf_append(&buf, ",\"host\":\"", 9);
append_json_string(&buf, host);
dynbuf_append(&buf, "\",", 2);