summaryrefslogtreecommitdiffstats
path: root/src/corelib/global/qlogging.cpp
Commit message (Collapse)AuthorAgeFilesLines
* Put #ifdef around Windows-only functionThiago Macieira2013-02-011-0/+2
| | | | | | | | Only on Windows do we use wchar_t messages. Change-Id: I9672371aa001effc755b32f9d7c83ada8464394f Reviewed-by: Olivier Goffart <ogoffart@woboq.com> Reviewed-by: Kai Koehne <kai.koehne@digia.com>
* Merge "Merge remote-tracking branch 'origin/stable' into dev" into ↵Frederik Gladhorn2013-01-231-1/+1
|\ | | | | | | refs/staging/dev
| * Update copyright year in Digia's license headersSergio Ahumada2013-01-181-1/+1
| | | | | | | | | | Change-Id: Ic804938fc352291d011800d21e549c10acac66fb Reviewed-by: Lars Knoll <lars.knoll@digia.com>
* | Change QT_FATAL_WARNINGS behavior to require a non-empty valueThiago Macieira2013-01-231-1/+1
|/ | | | | | | | This allows easy unsetting of the variable in a shell like: QT_FATAL_WARNINGS= progname Change-Id: Ie9cfb6ebfd4931de1c90af68bfeeae1e9f3d4b9d Reviewed-by: Kai Koehne <kai.koehne@digia.com>
* Doc: Removed the \relates instancesVenugopal Shivashankar2012-12-201-2/+0
| | | | | | | | | | | | | | | | | QDoc supports \relates in the context of a function that relates to an existing class or a namespace, but not in the context of a class. We can use \sa to list the related classes or namespaces for a class instead. This change ensures that QDoc generates documentation for QMessageLogger and QMessageLogContext classes. Task-number: QTBUG-28468 Change-Id: I2242ab730fe5e3acf54b6fa65774e751d2daa7a4 Reviewed-by: Jerome Pasion <jerome.pasion@digia.com> Reviewed-by: Martin Smith <martin.smith@digia.com> Reviewed-by: Kai Koehne <kai.koehne@digia.com>
* Logging: Mark deprecated API with QT_DEPRECATEDKai Koehne2012-10-161-0/+6
| | | | | | | | | | Still use it in qtestlib though because using qInstallMessageHandler here would break all tests (still) using qInstallMsgHandler - Qt always uses the new message handler if there's one, ignoring any message handler installed through deprecated API. Change-Id: I6fefefb315a2421425d2b7787e367fd348a33d83 Reviewed-by: Thiago Macieira <thiago.macieira@intel.com>
* Use slogger2 for logging on Blackberry instead of writing to stderrFabian Bumberger2012-10-041-0/+58
| | | | | | | Change-Id: Id0137400f18c8dfe7be7ca44670c16615401d424 Reviewed-by: Sean Harmer <sean.harmer@kdab.com> Reviewed-by: Rafael Roquetto <rafael.roquetto@kdab.com> Reviewed-by: Peter Hartmann <phartmann@rim.com>
* Change copyrights from Nokia to DigiaIikka Eklund2012-09-221-24/+24
| | | | | | | | Change copyrights and license headers from Nokia to Digia Change-Id: If1cc974286d29fd01ec6c19dd4719a67f4c3f00e Reviewed-by: Lars Knoll <lars.knoll@digia.com> Reviewed-by: Sergio Ahumada <sergio.ahumada@digia.com>
* Split the qt_message_output function in twoThiago Macieira2012-09-191-31/+74
| | | | | | | | This way, I can ensure that the noreturn qFatal function calls a noreturn function as its last action. Change-Id: I6db7aa2539af430414645f386d7fce87cdb97186 Reviewed-by: Kai Koehne <kai.koehne@digia.com>
* Logging: Fix mingw32-gcc compiler warning about unused variableKai Koehne2012-09-071-4/+3
| | | | | | Change-Id: I985c2096e604a3cb14eb3a41c4f12aa28f0ea681 Reviewed-by: Marc Mutz <marc.mutz@kdab.com> Reviewed-by: Thiago Macieira <thiago.macieira@intel.com>
* Logging: Remove mutex for OutputDebugStringKai Koehne2012-08-301-3/+0
| | | | | | | | | | | | OutputDebugString seems indeed to be thread safe, at least according to http://www.unixwiz.net/techtips/outputdebugstring.html . I also didn't manage to run into any deadlocks on Windows 7 ... The comment + code was already there (in qcoreapplication_win.cpp) in the first git commit that imported Qt. Change-Id: I442e22575558958ef21ab8c6b4cc8b03aee906b2 Reviewed-by: Thiago Macieira <thiago.macieira@intel.com>
* doc: Fix some qdoc warningsEskil Abrahamsen Blomfeldt2012-08-231-1/+1
| | | | | | | | | | | QDoc doesn't supported nested tags, and there doesn't seem to be any way to trick it into thinking you've mentioned the argument (\omit didn't work), so actually rephrasing is the only way to kill the warning. Also add a const modifier to a signature to make it match the declaration. Change-Id: Ie02a488c42565205e827602959111c53e2d05a83 Reviewed-by: Casper van Donderen <casper.vandonderen@nokia.com>
* Doc: Add \inmodule QtCore to all QtCore class doc bodiesThiago Macieira2012-08-231-0/+2
| | | | | Change-Id: I19100755c97cc155c76a859e19940e9f9222d34e Reviewed-by: Casper van Donderen <casper.vandonderen@nokia.com>
* Logging: make qEmergencyOut() not allocate from the heapMarc Mutz2012-08-231-11/+38
| | | | | | | | | | | | | | | | | | | | | Commit 6e6b74c0 introduced heap allocation in the form of QString::fromLatin1().utf16() into qEmergencyOut(), a function that's called in OOM situations and in cases where another exception is still in flight. Luckily, QString::fromLatin1().utf16() is just a funny way of copying an array of chars into an array of wchar_ts, so we do that manually now and use a static wchar_t buffer. While at it, also throw text elision into the mix. This commit also fixes the message passed to _CrtDbgReportW(). What should be displayed is the emergency_buf, not the format string. Also remove a similar allocation in qt_message_output(). Change-Id: I2c44a298fc0927bb992de4977a7e4a7b47b16b26 Reviewed-by: Thiago Macieira <thiago.macieira@intel.com>
* QMessageLogger: mark noDebug() as nothrowMarc Mutz2012-08-181-1/+1
| | | | | Change-Id: Ib01ad955844e8da376c687876141ad8f21776613 Reviewed-by: Thiago Macieira <thiago.macieira@intel.com>
* QMessageLogger: make member functions constMarc Mutz2012-08-181-8/+8
| | | | | | | | | | Just because we can :) It looks a bit weird that QMessageLogger has a constexpr constructor, but no const methods... Change-Id: I794dd2b3326c45be17b29decb47c9cac4778d397 Reviewed-by: Olivier Goffart <ogoffart@woboq.com>
* Fix QMessageLogger and associated qdoc errorsJeremy Katz2012-08-151-5/+100
| | | | | Change-Id: I4b9555c8a15a698ef5ce270288c88a0aa88e0033 Reviewed-by: Casper van Donderen <casper.vandonderen@nokia.com>
* QtCore: use new qEnvironmentVariableIs{Set,Empty}()Marc Mutz2012-08-141-2/+2
| | | | | | | | | | | | In particular, qEmergencyOut() is now completely exception-free. Incidentally, this patch shows that Qt isn't consistent in how it treats empty environment variables used as flags, but that is something for a separate commit. This patch aims to be behaviour-preserving, except in exceptional circumstances, of course. Change-Id: Ie106e7b430e1ab086c40c81cc1e56cd0e5400cb4 Reviewed-by: Thiago Macieira <thiago.macieira@intel.com>
* Logging: mark qt_assert()/qt_assert_x()/qFatal() as nothrowMarc Mutz2012-08-091-2/+2
| | | | | | | | | | | | | | | | | | | | | | These functions are not supposed to return, not even by exception. qt_message() _can_ throw, but we're fine with the compiler calling std::terminate() then, since the backtrace will still include the assertion location. This behaviour is ensured by a new macro, QT_TERMINATE_ON_EXCEPTION, which expands to something like try { expr; } catch(...) { std::terminate(); } if the compiler doesn't support Q_DECL_NOEXCEPT (but maybe Q_DECL_NOTHROW), and to something like just expr; otherwise (including in the QT_NO_EXCEPTION case). The real macro preserves scopes in all cases, and aims to work even if <exception> isn't included in the TU it's used in, so is a little bit more complex than that. Change-Id: Ie6a2b7776e6aa77e57bd9aea6e184e5fa1cec81c Reviewed-by: Thiago Macieira <thiago.macieira@intel.com>
* Logging: mark qEmergencyOut() noexceptMarc Mutz2012-08-061-1/+1
| | | | | | | | This function is called in OOM situations and when other exceptions are still in flight, so it really shouldn't throw, indeed. Change-Id: I50cda699ffd74f3710c3bafd15af356ff410bc47 Reviewed-by: Friedemann Kleint <Friedemann.Kleint@nokia.com>
* Logging: Simplify message handler logic for windowsKai Koehne2012-07-211-24/+13
| | | | | | | Incorporate the functionality of qWinMessageHandler in qDefaultMessageHandler. Change-Id: Iec5b19e187c0d2e3d8d0874280ba57f6fb21d7b4 Reviewed-by: Stephen Kelly <stephen.kelly@kdab.com>
* Remove unused static functions from qlogging.cpp, qstring.cpp.Friedemann Kleint2012-06-121-9/+0
| | | | | Change-Id: I4e9642b5e7fb57ac56511ae06af6ce416d0401ec Reviewed-by: Thiago Macieira <thiago.macieira@intel.com>
* Logging: Remove outdated QMessageHandlerKai Koehne2012-06-101-20/+0
| | | | | | | | Commit d9a1c2dff replaced QMessageHandler with QtMessageHandler. However, the old signature was still supported for a grace period. Change-Id: I3141499efdc749460b77de1ceec82f312e904bec Reviewed-by: Thiago Macieira <thiago.macieira@intel.com>
* Use WChar method for reporting for WindowsAndreas Holzammer2012-05-111-3/+15
| | | | | | | | | | | Switch to Unicode reporting, as Windows CE does only support UTF-16 functions and to not open up some other ifdefs just switch to unicode. Change-Id: I82613a131313235e313cecd315bf6d1488af0532 Reviewed-by: Kai Koehne <kai.koehne@nokia.com> Reviewed-by: Friedemann Kleint <Friedemann.Kleint@nokia.com> Reviewed-by: Thiago Macieira <thiago.macieira@intel.com>
* Logging: Show pattern warning also on Windows GUI appsKai Koehne2012-05-111-5/+20
| | | | | | Change-Id: Ibbeb606469e7cec5aa68525b05714453151ee066 Reviewed-by: Andreas Holzammer <andreas.holzammer@kdab.com> Reviewed-by: Thiago Macieira <thiago.macieira@intel.com>
* Doc: Fix \sa usageMarius Storm-Olsen2012-05-111-1/+1
| | | | | | | | | Ensure comma between elements (757 missing), single space and curly- braces around title elements, etc. Change-Id: Id16c3fda7fc47a12a0682f8720214f4990609a97 Reviewed-by: Giuseppe D'Angelo <giuseppe.dangelo@kdab.com> Reviewed-by: Casper van Donderen <casper.vandonderen@nokia.com>
* Doc: Move some remaining files over for modularization.Casper van Donderen2012-05-091-3/+3
| | | | | | | | | The files in this change were still in qtbase/doc/src or required for it. qtbase/doc/src should now only contain example documentation and images for the example documentation. Change-Id: Ia7ca8e7fd2b316e77c706a08df71303bc8294213 Reviewed-by: Marius Storm-Olsen <marius.storm-olsen@nokia.com>
* Merge remote-tracking branch 'origin/api_changes'Lars Knoll2012-05-031-83/+215
|\ | | | | | | | | | | | | | | | | | | | | | | Conflicts: src/corelib/global/qglobal.cpp src/corelib/global/qlogging.cpp src/gui/kernel/qguiapplication.h src/gui/kernel/qwindow.cpp src/gui/kernel/qwindow.h tests/auto/corelib/kernel/qvariant/tst_qvariant.cpp Change-Id: I62a8805577a7940d4d36bed985eb3e7019d22f2e
| * Allow qDebug output to be configured by qSetMessagePattern()Kai Koehne2012-04-241-13/+51
| | | | | | | | | | | | | | | | | | | | | | | | | | | | Add qSetMessagePattern() to configure the default message pattern. This one can still be overwritten by setting the QT_MESSAGE_PATTERN environment variable. Without this method, there's actually no way to change the default output programatically. Since QT_MESSAGE_PATTERN is evaluated when the first message arrives, setting it via e.g. qputenv might have no effect/be too late. Change-Id: I115e0c30606f128fdbf5c169a951ffa2a6a48517 Reviewed-by: Thiago Macieira <thiago.macieira@intel.com>
| * Logging: Change arguments of message handler to avoid conversionsKai Koehne2012-04-201-51/+112
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | Introduce a new QtMessageHandler that takes QString instead of char *: This avoids converting to local8bit , only to convert it back to utf16 for Windows. The old QMessageHandler is kept for a transition period, but will be removed before Qt 5.0. Also fix qEmergencyOut (that is called in OOM situations) to not rely on the default message handler. Change-Id: Iee0ce5838f97175c98788b847964273dd22d4a37 Reviewed-by: Thiago Macieira <thiago.macieira@intel.com>
* | Mark qt_assert and qFatal as non-returning functions (excpt. MSVC)Thiago Macieira2012-04-191-0/+3
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | This allows the compiler to optimise the code a bit better: since they don't return, it can assume in the code after the Q_ASSERT that the condition was true. MSVC is the exception: with MSVC, we have the CrtDbgReport dialog, which allows the developer to continue execution, inside the debugger. Therefore, we can't mark any of those functions as non-returning because they can, after all, return. Unfortunately, the Q_ASSERT usually expands to no code in release mode, so the improvement in code generation happens in debug mode only... Change-Id: I4d542d6853cd51c71ffab1d563ed64ef7c419115 Reviewed-by: Oswald Buddenhagen <oswald.buddenhagen@nokia.com> Reviewed-by: Thiago Macieira <thiago.macieira@intel.com>
* | Doc: Prepare for building modular QtCore docs.Casper van Donderen2012-04-191-4/+74
|/ | | | | | | | | | | | This change fixes most qdoc errors in QtCore. There are about 900 left. The main thing this change does is moving documentation from qtcore from /doc/src to /src/corelib/doc. Other issues resolved are mis-use of qdoc commands. Change-Id: I002d01edfb13575e8bf27ce91596a577a92562d1 Reviewed-by: Lars Knoll <lars.knoll@nokia.com> Reviewed-by: Jason McDonald <jason.mcdonald@nokia.com> Reviewed-by: Jerome Pasion <jerome.pasion@nokia.com>
* Prepare category logging for Qt integrationWolfgang Beck2012-04-031-10/+16
| | | | | | | Change-Id: I0c784a945fe87d7ba52a44f5c7246de1709ae888 Reviewed-by: Lincoln Ramsay <lincoln.ramsay@nokia.com> Reviewed-by: Peter Yard <peter.yard@nokia.com> Reviewed-by: Alex <alex.blasche@nokia.com>
* Logging: Make sure documentation shows upKai Koehne2012-04-021-195/+0
| | | | | | | | | | | | | Move the documentation for qDebug, qWarning, qCritical, qFatal, QMessageHandler, QtMsgHandler, qtInstallMsgHandler, qInstallMessageHandler from qlogging.cpp to qglobal.cpp. For some reason it's not picked up from qlogging.cpp otherwise. Also, tweak the output so that e.g. qDebug and friends are correctly listed as macros. Change-Id: I8cabf04bae0e8ae9a31a40ebe2d3272c3a33653b Reviewed-by: Casper van Donderen <casper.vandonderen@nokia.com>
* Improve documentation for QMessageLoggerKai Koehne2012-04-021-3/+3
| | | | | Change-Id: I6c52b74b9fa0d894492f335e2f303f927ee6307b Reviewed-by: Casper van Donderen <casper.vandonderen@nokia.com>
* Show correct origin of Q_ASSERT in Windows dialogKai Koehne2012-03-221-3/+3
| | | | | | | | Display the actual file and line where the Q_ASSERT statement was triggered. Change-Id: I54d72f4c4bd9edee744c0f6e08f31b8e3120f454 Reviewed-by: David Faure <faure@kde.org>
* Remove the usage of deprecated qdoc macros.Casper van Donderen2012-03-021-1/+1
| | | | | | | | | | | QDoc now has support for Doxygen style commands for italics, bold and list items. This change applies that change in QDoc to the actual documentation. Task-number: QTBUG-24578 Change-Id: I519bf9c29b14092e3ab6067612f42bf749eeedf5 Reviewed-by: Shane Kearns <shane.kearns@accenture.com> Reviewed-by: Lars Knoll <lars.knoll@nokia.com>
* Include qt_windows.h for Windows CE.Andreas Holzammer2012-02-201-0/+3
| | | | | | | | | The include is needed for OutputDebugString, as it is defined in winbase.h. To include use the centralized header. Change-Id: I486da20d7b054cee352be085e65a0ede1394653d Reviewed-by: Friedemann Kleint <Friedemann.Kleint@nokia.com>
* QDebug: Add support for %{pid}, %{appname} and %{threadid}David Faure2012-02-171-1/+22
| | | | | | Change-Id: I4add0a374e6524b615c6dc0ecfb010a90075b04f Reviewed-by: Kai Koehne <kai.koehne@nokia.com> Reviewed-by: Thiago Macieira <thiago.macieira@intel.com>
* Reshuffle code between qglobal, qloggingKai Koehne2012-02-131-1/+464
| | | | | | | Make the content of the .h, .cpp files match. Change-Id: Ib2506aeff74281ec4bcbf04d21da451038391203 Reviewed-by: David Faure <faure@kde.org>
* Fix qlogging autotest for clangKai Koehne2012-02-101-0/+5
| | | | | | Change-Id: Iac82c4847554534174b5419ec78319c9ac381628 Reviewed-by: Bradley T. Hughes <bradley.hughes@nokia.com> Reviewed-by: Olivier Goffart <ogoffart@woboq.com>
* Allow customization of qDebug output at runtimeKai Koehne2012-02-091-1/+312
| | | | | | | | | | | | | Check the QT_OUTPUT_PATTERN environment variable in the default message handler to customize the output of messages. Following place holders are right now supported: %{message}, %{type}, %{file}, %{line}, %{function} The original cleanupFuncinfo was written by Thiago Macieira. Change-Id: I6ad25baaa0e6a1c9f886105d2a93ef3310e512a9 Reviewed-by: Olivier Goffart <ogoffart@woboq.com> Reviewed-by: David Faure <faure@kde.org>
* QtDebug: Include file, line, function informationKai Koehne2012-02-011-0/+76
Record the file, line, and function where a qDebug, qWarning, qCritical or qFatal call happens, and make this information available in a custom message handler. The patch uses the C preprocessor to replace qDebug, qWarning, ... with a line that also records the current file, line, and function. Custom message handlers can access this information via a new QMessageLogContext argument. Change-Id: I0a9b89c1d137e41775932d3b1a35da4ebf12d18d Reviewed-by: David Faure <faure@kde.org>