Hi Lincoln, Thanks for this updated vision for logging. I like this very much.
On Wednesday 22 February 2012 16:37:20 Lincoln Ramsay wrote: > PART 1: The logging statements. > qCDebug(PLUGIN) << "Scanning for plugins in" << paths; > qCWarning(PLUGIN) << "Could not load plugin" << loader->errorString(); Perfect! > PART 2: Compatibility with qDebug/qWarning > qDebug() and qWarning() will be re-implemented as categorized logging > statements. Both will use the same, hard-coded category. [...] Very good. Please don't deprecate it though (you're already calling it "legacy") ;) I consider qDebug("foo") and qDebug() << "foo" to be the very useful "throw- away" debugging, so indeed it should be on by default, and it should not be considered deprecated/legacy. > PART 3: Turning statements on/off. > However, since there are likley to be many apps that don't care about > logging (or may not expose a way to turn on logging in a third party > library) there will also be a text-based config file that the user can > create. Where should this file be located? Either the app sets the > location of this file by calling qSetLoggingConfigFile() or the user > sets the QT_LOGGING_CONFIG environment variable (which overrides the > app's default). If the config file exists, the C++ API has no effect. > QFileWatcher will be used to monitor the config file so that categories > can be turned on/off while the program is running by updating the file. Sounds good, except that I would want something more global than "one file per application". When working on a framework or an entire desktop environment, one needs to be able to toggle a debug area across all apps. But the environment variable could be used for that, so that's a solution. > PART 4: Formatting. > > There's a %{category} entry that can appear in the format string. This > will be in the default format string. +1 > PART 5: Saving logs to a file. > > As a special case, the user can direct enabled messages to a file. This > is done from the config file. > > # write output to a file (in the user's home directory) > logging.output.file = file.txt I suppose Windows users would expect relative paths to be "in the CWD, which is usually the executable's directory"? Not sure. Looks good. -- David Faure | david.fa...@kdab.com | KDE/Qt Senior Software Engineer KDAB (France) S.A.S., a KDAB Group company Tel. France +33 (0)4 90 84 08 53, Sweden (HQ) +46-563-540090 KDAB - Qt Experts - Platform-independent software solutions _______________________________________________ Development mailing list Development@qt-project.org http://lists.qt-project.org/mailman/listinfo/development