source: pacpusframework/branches/2.0-beta1/include/Pacpus/kernel/Log.h@ 141

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

Major update: using Boost.Log if PACPUS_USE_LOG is true.
Added: overloaded operator<< for QString (explicit instantiation).

  • Property svn:executable set to *
File size: 2.3 KB
Line 
1// %pacpus:license{
2// This file is part of the PACPUS framework distributed under the
3// CECILL-C License, Version 1.0.
4// %pacpus:license}
5/// @file
6/// @author Marek Kurdej <firstname.surname@utc.fr>
7/// @date March, 2012
8/// @version $Id: Log.h 73 2013-01-10 16:56:42Z kurdejma $
9/// @copyright Copyright (c) UTC/CNRS Heudiasyc 2006 - 2013. All rights reserved.
10/// @brief Logging facility.
11///
12/// Detailed description.
13
14#ifndef DEF_PACPUS_LOG_H
15#define DEF_PACPUS_LOG_H
16
17// Includes, pacpus.
18#include <Pacpus/kernel/pacpus.h>
19
20namespace pacpus {
21
22/// Static log facility initializer
23///
24/// Uses Schwarz counter (nifty counter) idiom to initialize the log before
25/// other static objects that could use the log.
26static class PACPUSLIB_API LogConfigurator
27{
28public:
29 LogConfigurator();
30 static void configureLoggerWithFile(const char * configFilename);
31} logInitializer;
32
33} // namespace pacpus
34
35#if defined(PACPUS_USE_LOG)
36
37#include <boost/log/trivial.hpp>
38#include <iosfwd>
39class QString;
40
41template< typename CharT, typename TraitsT >
42PACPUSLIB_API std::basic_ostream< CharT, TraitsT >& operator<< (std::basic_ostream< CharT, TraitsT >& strm, QString const& s);
43
44#define DECLARE_STATIC_LOGGER(name)
45
46#define LOG(level, message) BOOST_LOG_TRIVIAL(level) << message
47#define LOG_TRACE(message) LOG(trace, message)
48#define LOG_DEBUG(message) LOG(debug, message)
49#define LOG_INFO(message) LOG(info, message)
50#define LOG_WARN(message) LOG(warning, message)
51#define LOG_ERROR(message) LOG(error, message)
52#define LOG_FATAL(message) LOG(fatal, message)
53
54#else
55
56/// @param name Name of the logger, displayed when logging a message.
57#define DECLARE_STATIC_LOGGER(name)
58/// Logs a message at TRACE level using default logger
59#define LOG_TRACE(message)
60/// Logs a message at DEBUG level using default logger
61#define LOG_DEBUG(message)
62/// Logs a message at INFO level using default logger
63#define LOG_INFO(message)
64/// Logs a message at WARN level using default logger
65#define LOG_WARN(message)
66/// Logs a message at ERROR level using default logger
67#define LOG_ERROR(message)
68/// Logs a message at FATAL level using default logger
69#define LOG_FATAL(message)
70
71#endif // PACPUS_USE_LOG
72
73#endif // DEF_PACPUS_LOG_H
Note: See TracBrowser for help on using the repository browser.