sebas created this revision. sebas added a reviewer: Plasma. Restricted Application added a project: Plasma. Restricted Application added a subscriber: plasma-devel.
REVISION SUMMARY Debugging kscreen is generally really hard since it's spread across different processes, not all of which are easy to look into. With this change, we collect all of kscreen's debug output (from kcm, kded and backendlauncher) and write them to a log file. This means that we can look into one log file, and see exactly what's going on, and in which component. It makes collecting debug info much easier. This is implemented in the form of a QMessageHandler, hooking into the qCDebug calls. This is a pretty neat solution, since: - we can make use of the stream operators from qDebug - we don't need to rewrite all the debug statements - normal debug is otherwise still working The general idea is that we cache file names and initialization from the env vars on first creation, allow subsequent context changes. The log file is opened and closed right away, since other processes may want to also write to it. We don't do any file-locking to keep things simple. The logging isn't mission-critical, but rather a debugging tool for users. If we end up with corrupt logs, that's bad luck (but can happen due to multi-process race conditions). More advanced multi-process locking and delayed writing is just going to give us headaches, so we avoid that at the price of logs not being 100% reliably formatted. Also: - disable logging for most autotests - all messages are then passed to the previously installed messagehandler. TEST PLAN new code comes with autotests REPOSITORY rLIBKSCREEN KScreen Library BRANCH sebas/log REVISION DETAIL https://phabricator.kde.org/D2295 AFFECTED FILES autotests/CMakeLists.txt autotests/testbackendloader.cpp autotests/testconfigmonitor.cpp autotests/testinprocess.cpp autotests/testkwaylandbackend.cpp autotests/testkwaylandconfig.cpp autotests/testlog.cpp autotests/testqscreenbackend.cpp autotests/testscreenconfig.cpp src/CMakeLists.txt src/backendlauncher/main.cpp src/backendmanager.cpp src/getconfigoperation.cpp src/log.cpp src/log.h EMAIL PREFERENCES https://phabricator.kde.org/settings/panel/emailpreferences/ To: sebas, #plasma Cc: plasma-devel, jensreuterberg, abetts, sebas
_______________________________________________ Plasma-devel mailing list Plasma-devel@kde.org https://mail.kde.org/mailman/listinfo/plasma-devel