source: pacpusframework/trunk/include/Pacpus/kernel/Log.h@ 71

Last change on this file since 71 was 71, checked in by Marek Kurdej, 11 years ago

Added: more documentation.
doc/doxyfile.in: turned on BUILTIN_STL_SUPPORT in Doxygen.
Added: LICENSE-header.txt to be included in all source files.

  • Property svn:keywords set to Id
File size: 2.6 KB
RevLine 
[62]1// This file is part of the PACPUS framework distributed under the
2// CECILL-C License, Version 1.0.
3//
[66]4/// @file
[62]5/// @author Marek Kurdej <firstname.surname@utc.fr>
[63]6/// @date March, 2012
[62]7/// @version $Id: Log.h 71 2013-01-10 14:07:34Z kurdejma $
8/// @copyright Copyright (c) UTC/CNRS Heudiasyc 2006 - 2013. All rights reserved.
[63]9/// @brief Logging facility.
[62]10///
11/// Detailed description.
[3]12
[31]13#ifndef DEF_PACPUS_LOG_H
14#define DEF_PACPUS_LOG_H
[3]15
16// Includes, pacpus.
[31]17#include <Pacpus/kernel/pacpus.h>
[3]18
19namespace pacpus {
20
[71]21/// Static log facility initializer
22///
23/// Uses Schwarz counter (nifty counter) idiom to initialize the log before
24/// other static objects that could use the log.
[3]25static class PACPUSLIB_API LogConfigurator
26{
27public:
28 LogConfigurator();
29 ~LogConfigurator();
30
31 static void configureLoggerWithFile(const char * configFilename);
32} initializer; // using Schwarz/nifty counter idiom for static initialization
33
34} // namespace pacpus
35
36#ifdef PACPUS_USE_LOG
37 #include <log4cxx/logger.h>
38
39 class QString;
[71]40
[3]41 #define DECLARE_STATIC_LOGGER(name) \
42 static log4cxx::LoggerPtr logger(log4cxx::Logger::getLogger(name))
43
44 #define LOG_TRACE(message) LOG4CXX_TRACE(logger, message)
45 #define LOG_DEBUG(message) LOG4CXX_DEBUG(logger, message)
46 #define LOG_INFO(message) LOG4CXX_INFO(logger, message)
47 #define LOG_WARN(message) LOG4CXX_WARN(logger, message)
48 #define LOG_ERROR(message) LOG4CXX_ERROR(logger, message)
49 #define LOG_FATAL(message) LOG4CXX_FATAL(logger, message)
50
[71]51 /// Output stream ::log4cxx::helpers::CharMessageBuffer operator for QString
[3]52 PACPUSLIB_API ::log4cxx::helpers::CharMessageBuffer & operator<<(::log4cxx::helpers::CharMessageBuffer & os, const QString & s);
[71]53 /// Output stream ::log4cxx::helpers::MessageBuffer operator for QString
[3]54 PACPUSLIB_API ::log4cxx::helpers::CharMessageBuffer & operator<<(::log4cxx::helpers::MessageBuffer & os, const QString & s);
[71]55
[3]56#else
[71]57 /// Declares a log4cxx logger
58 ///
59 /// @param name Name of the logger, displayed when logging a message.
[3]60 #define DECLARE_STATIC_LOGGER(name)
[71]61 /// Logs a message at TRACE level using default logger
[3]62 #define LOG_TRACE(message)
[71]63 /// Logs a message at DEBUG level using default logger
[3]64 #define LOG_DEBUG(message)
[71]65 /// Logs a message at INFO level using default logger
[3]66 #define LOG_INFO(message)
[71]67 /// Logs a message at WARN level using default logger
[3]68 #define LOG_WARN(message)
[71]69 /// Logs a message at ERROR level using default logger
[3]70 #define LOG_ERROR(message)
[71]71 /// Logs a message at FATAL level using default logger
[3]72 #define LOG_FATAL(message)
73#endif // PACPUS_USE_LOG
74
[31]75#endif // DEF_PACPUS_LOG_H
Note: See TracBrowser for help on using the repository browser.