You are viewing a plain text version of this content. The canonical link for it is here.
Posted to dev@httpd.apache.org by 牛旭 <ni...@nudt.edu.cn> on 2018/10/16 12:29:12 UTC

Recommendation for adding APLOGNO() before string format which is passed to ap_log_cerror()

Our team works on enhance logging practices by learning from historical log revisions in evolution. 
By mining historical patches, we find two patches that both add APLOGNO(*****) before the format string which is then passed to ap_log_cerror().

However, when apply this rule to httpd-2.4.27, we find one missed spot:
1) Line 1135 in httpd-2.4.27/modules/http2/h2_proxy_session.c
static void ev_proto_error(h2_proxy_session *session, int arg, const char *msg)
{
    switch (session->state) {
        case H2_PROXYS_ST_DONE:
        case H2_PROXYS_ST_LOCAL_SHUTDOWN:
            /* just leave */
            transit(session, "proto error", H2_PROXYS_ST_DONE);
            break;
        
        default:
            ap_log_cerror(APLOG_MARK, APLOG_TRACE1, 0, session->c,
                          "h2_proxy_session(%s): proto error -> shutdown", session->id);

Here are the two patches we find in evolution history:
1) Line 1829 in httpd/versions/httpd-2.4.20/modules/http2/h2_session.c
         case H2_SESSION_ST_LOCAL_SHUTDOWN:
             /* just leave */
             transit(session, "conn error", H2_SESSION_ST_DONE);
             break;
         
         default:
-            ap_log_cerror(APLOG_MARK, APLOG_DEBUG, 0, session->c,
+            ap_log_cerror(APLOG_MARK, APLOG_DEBUG, 0, session->c, APLOGNO(03401)
                           "h2_session(%ld): conn error -> shutdown", session->id);
             h2_session_shutdown(session, arg, msg, 0);
             break;
     }
 }

2) Line 1846 in httpd/versions/httpd-2.4.20/modules/http2/h2_session.c
         case H2_SESSION_ST_LOCAL_SHUTDOWN:
             /* just leave */
             transit(session, "proto error", H2_SESSION_ST_DONE);
             break;
         
         default:
-            ap_log_cerror(APLOG_MARK, APLOG_DEBUG, 0, session->c,
+            ap_log_cerror(APLOG_MARK, APLOG_DEBUG, 0, session->c, APLOGNO(03402)
                           "h2_session(%ld): proto error -> shutdown", session->id);
             h2_session_shutdown(session, arg, msg, 0);
             break;
     }
 }

By the way, we find the definition of APLOGNO() and its comments:
Line 117 of httpd-2.4.27/include/httpd-log.h 
/**
 * APLOGNO() should be used at the start of the format string passed
 * to ap_log_error() and friends. The argument must be a 5 digit decimal
 * number. It creates a tag of the form "AH02182: "
 * See docs/log-message-tags/README for details.
 */
#define APLOGNO(n)              "AH" #n ": "


Thanks for your reading and we are looking forward to your reply.
May you a good day!

Best regards,
Xu