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:
@ -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);
|
||||
|
||||
|
||||
Reference in New Issue
Block a user