void maRequestError(MaRequest *rq, int code, char *fmt, ...) { va_list ap; char buf[MPR_MAX_STRING]; va_start(ap, fmt); mprVsprintf(buf, sizeof(buf), fmt, ap); rq->requestError(code, buf); va_end(ap); }
void mprTrace(int level, char* fmt, ...) { va_list ap; char buf[MPR_MAX_STRING]; int len; va_start(ap, fmt); len = mprVsprintf(buf, sizeof(buf), fmt, ap); mprLog(level, buf); va_end(ap); }
void mprStaticError(MPR_LOC_DEC(ctx, loc), const char *fmt, ...) { va_list args; int len; char buf[MPR_MAX_STRING]; va_start(args, fmt); len = mprVsprintf(buf, sizeof(buf), fmt, args); va_end(args); logOutput(MPR_LOC_PASS(ctx, loc), MPR_ERROR_MSG | MPR_ERROR_SRC, 0, buf); }
int maWriteFmt(MaRequest *rq, char* fmt, ...) { va_list ap; char buf[MPR_MAX_STRING]; int rc, len; va_start(ap, fmt); len = mprVsprintf(buf, sizeof(buf), fmt, ap); rc = rq->write(buf, len); va_end(ap); return rc; }
void mprError(char *file, int line, int flags, char *fmt, ...) { va_list args; va_start(args, fmt); #if BLD_FEATURE_LOG if (defaultLog) { defaultLog->error(file, line, flags, fmt, args); } #else char buf[MPR_MAX_LOG_STRING]; mprVsprintf(buf, sizeof(buf), fmt, args); mprFprintf(MPR_STDERR, "%s\n", buf); #endif va_end(args); }
int MprBuf::putFmt(char *fmt, ...) { va_list vargs; char buf[MPR_MAX_STRING]; int len; va_start(vargs, fmt); len = mprVsprintf(buf, MPR_MAX_STRING, fmt, vargs); if (len >= MPR_MAX_STRING) { mprLog(MPR_VERBOSE, " putFmt buffer overflow\n"); va_end(vargs); return 0; } va_end(vargs); return put((uchar*) buf, len); }
void MprLogService::traceCore(int level, int flags, MprLogModule *mod, char *fmt, va_list args) { char buf[MPR_MAX_LOG_STRING]; int len; if (mod == 0) { mod = defaultModule; } // // Test the level here first up to quickly eliminate verbose trace levels // if ((level & MPR_LOG_MASK) <= mod->getLevel()) { int max = sizeof(buf) - 12; len = mprVsprintf(buf, max, fmt, args); if (len >= (max - 1)) { mprStrcpy(&buf[len], 12, " TRUNCATED\n"); } output(mod, flags, level, buf); } }
void MprLogService::error(char *file, int line, int flags, char *fmt, va_list args) { static int recurseGate = 0; Mpr *mpr; char msg[MPR_MAX_LOG_STRING], buf[MPR_MAX_LOG_STRING]; mpr = mprGetMpr(); // // Errors post close // #if BLD_FEATURE_MULTITHREAD if (mutex == 0) { return; } #endif lock(); if (recurseGate > 0) { unlock(); return; } recurseGate++; mprVsprintf(msg, sizeof(msg), fmt, args); if (flags & MPR_TRAP) { mprSprintf(buf, sizeof(buf), "Assertion %s, failed (%s:%d)\n", msg, file, line); output(defaultModule, flags, MPR_ERROR, buf); // // Break to the debugger // breakpoint(file, line); } else if (flags & MPR_LOG) { // // Write to both the O/S log and to the trace log // mprSprintf(buf, sizeof(buf), "Error: %s\n", msg); output(defaultModule, flags, MPR_ERROR, buf); if (mpr) { mpr->writeToOsLog(buf, flags | MPR_INFO); } } else if (flags & MPR_USER) { mprSprintf(buf, sizeof(buf), "Error: %s\n", msg); output(defaultModule, flags, MPR_ERROR, buf); if (mpr) { mpr->writeToOsLog(buf, flags | MPR_WARN); } } else if (flags & MPR_ALERT) { // FUTURE -- TBD } else { mprAssert(0); } recurseGate--; unlock(); }