QtAVDebug::QtAVDebug(QtMsgType t, QDebug *d) : type(t) , dbg(0) { if (d) setQDebug(d); // call *dbg << gQtAVLogTag static bool sFirstRun = true; if (!sFirstRun) return; sFirstRun = false; //printf("Qt Logging first run........\n"); // check environment var and call other functions at first Qt logging call // always override setLogLevel() QByteArray env = qgetenv("QTAV_LOG_LEVEL"); if (env.isEmpty()) env = qgetenv("QTAV_LOG"); if (!env.isEmpty()) { bool ok = false; const int level = env.toInt(&ok); if (ok) { if (level < (int)LogOff) setLogLevel(LogOff); else if (level > (int)LogAll) setLogLevel(LogAll); else setLogLevel((LogLevel)level); } else { env = env.toLower(); if (env.endsWith("off")) setLogLevel(LogOff); else if (env.endsWith("debug")) setLogLevel(LogDebug); else if (env.endsWith("warning")) setLogLevel(LogWarning); else if (env.endsWith("critical")) setLogLevel(LogCritical); else if (env.endsWith("fatal")) setLogLevel(LogFatal); else if (env.endsWith("all") || env.endsWith("default")) setLogLevel(LogAll); } } env = qgetenv("QTAV_LOG_TAG"); if (!env.isEmpty()) { gQtAVLogTag = env; } if ((int)logLevel() > (int)LogOff) { print_library_info(); } }
QtAVDebug::~QtAVDebug() { setQDebug(0); }