diff options
author | Joaquim Rocha <jrocha@igalia.com> | 2010-11-11 12:52:30 +0100 |
---|---|---|
committer | Holger Schröder <holger.schroeder.ext@basyskom.de> | 2010-11-12 13:15:29 +0100 |
commit | dbb0cfd20cede7c24ac7da5e7c6cc2d4532db4ac (patch) | |
tree | 4840ee15c4847d0c294f06a561aa32d7ac5d571a /mthemedaemon | |
parent | bb87692b1b7cd02999f6e89b2651077fc04ee3db (diff) |
Fixes: NB#202329 - mthemedaemon spews out lots of useless debug to syslog
RevBy: Armin Berres
Details:
Use a custom message handler for the mthemedaemon so it will only print
messages to the stderr and make it's default output level to be
critical on ARM and warning on i386.
Diffstat (limited to 'mthemedaemon')
-rw-r--r-- | mthemedaemon/main.cpp | 41 |
1 files changed, 41 insertions, 0 deletions
diff --git a/mthemedaemon/main.cpp b/mthemedaemon/main.cpp index afb35c92..d0499e4c 100644 --- a/mthemedaemon/main.cpp +++ b/mthemedaemon/main.cpp @@ -26,6 +26,11 @@ #include "keypresswaiter.h" #endif +namespace +{ + QtMsgType outputLevel = QtDebugMsg; +} + static int setup_unix_signal_handlers() { struct sigaction sighup, sigterm, sigint; @@ -55,6 +60,39 @@ static int setup_unix_signal_handlers() return 0; } +static QtMsgType getOutputLevelFromArgs(QStringList arguments) +{ + QString argLevel; + int index = arguments.indexOf("-output-level") + 1; + if (index > 0 && index < arguments.length()) { + argLevel = arguments[index]; + } + + if (argLevel == "debug") + return QtDebugMsg; + if (argLevel == "warning") + return QtWarningMsg; + if (argLevel == "critical") + return QtCriticalMsg; + +#ifdef __arm__ + return QtCriticalMsg; +#else + return QtWarningMsg; +#endif +} + +static void mMessageHandler(QtMsgType type, const char *msg) +{ + if (type < outputLevel) + return; + + fprintf(stderr, "%s\n", msg); + + if (type == QtFatalMsg) + abort(); +} + int main(int argc, char **argv) { setup_unix_signal_handlers(); @@ -75,6 +113,9 @@ int main(int argc, char **argv) QApplication app(argc, argv); + outputLevel = getOutputLevelFromArgs(app.arguments()); + qInstallMsgHandler(mMessageHandler); + // Apply custom server address, if the "-address" has been passed as argument QString serverAddress; int index = app.arguments().indexOf("-address"); |