1 /** Aesalon, a tool to visualize program behaviour in real time.
2 Copyright (C) 2009-2011, Aesalon development team.
4 Aesalon is distributed under the terms of the GNU GPLv3. See
5 the included file LICENSE for more information.
7 @file include/util/MessageSystem.h
10 #ifndef AesalonUtil_MessageSystem_H
11 #define AesalonUtil_MessageSystem_H
15 #include "util/StreamAsString.h"
28 static void writeMessage(MessageLevel level
, const std::string
&message
);
33 /* Usage something like:
34 Message(Debug, "The foo has passed bar #" << fooBar << " at baz #" << baz);
37 #define Message(level, message) \
38 Util::MessageSystem::writeMessage(level, Util::StreamAsString() << message)
40 #define Debug Util::MessageSystem::Debug
41 #define Log Util::MessageSystem::Log
42 #define Warning Util::MessageSystem::Warning
43 #define Fatal Util::MessageSystem::Fatal
45 #define LevelString(level) \
46 (level == Debug?("DEBUG"):( \
47 level == Log?("LOG"):( \
48 level == Warning?("WARN"):"FATAL")))