PUBLIC void httpDetailTraceFormatter(HttpTrace *trace, HttpConn *conn, cchar *event, cchar *type, cchar *values, 
    cchar *data, ssize len)
{
    MprBuf      *buf;
    MprTime     now;
    char        *cp;
    int         client, sessionSeqno, gotColon;

    assert(trace);
    assert(event);
    assert(type);

    lock(trace);
    if (!trace->buf) {
        trace->buf = mprCreateBuf(0, 0);
    }
    buf = trace->buf;
    mprFlushBuf(buf);

    if (conn) {
        now = mprGetTime();
        if (trace->lastMark < (now + TPS) || trace->lastTime == 0) {
            trace->lastTime = mprGetDate("%T");
            trace->lastMark = now;
        }
        client = conn->address ? conn->address->seqno : 0;
        sessionSeqno = conn->rx->session ? (int) stoi(conn->rx->session->id) : 0;
        mprPutToBuf(buf, "\n%s %d-%d-%d-%d %s", trace->lastTime, client, sessionSeqno, conn->seqno, conn->rx->seqno, event);
    } else {
        mprPutToBuf(buf, "\n%s: %s", trace->lastTime, event);
    }
    if (values) {
        mprPutCharToBuf(buf, ' ');
        gotColon = 0;
        for (cp = (char*) values; *cp; cp++) {
            if (cp[0] == ':' && !gotColon) {
                cp[0] = '=';
                gotColon = 1;
            } else if (cp[0] == ',') {
                cp[0] = ' ';
                gotColon = 0;
            }
        }
        mprPutStringToBuf(buf, values);
        mprPutCharToBuf(buf, '\n');
    }
    if (data) {
        mprPutToBuf(buf, "\n----\n");
        data = httpMakePrintable(trace, conn, event, data, &len);
        mprPutBlockToBuf(buf, data, len);
        if (len > 0 && data[len - 1] != '\n') {
            mprPutCharToBuf(buf, '\n');
        }
        mprPutToBuf(buf, "----\n");
    }
    if (!values && !data) {
        mprPutCharToBuf(buf, '\n');
    }
    httpWriteTrace(trace, mprGetBufStart(buf), mprGetBufLength(buf));
    unlock(trace);
}
NVD is only using a subset of CWE for mapping instead of the entire CWE, and the weakness type is not covered by that subset.