X-Git-Url: http://g0dil.de/git?a=blobdiff_plain;f=Utils%2FLogger%2FLevels.hh;h=e390f44641582946f574c43ffc61ab47bb5870e4;hb=61dc3812717cdc89fa2402006d4009236b72dc8f;hp=76168437f867e98946ea736241f710aac107fb1c;hpb=61419d9a2e1060f7ede22fa19fd9d0b401bbc87a;p=senf.git diff --git a/Utils/Logger/Levels.hh b/Utils/Logger/Levels.hh index 7616843..e390f44 100644 --- a/Utils/Logger/Levels.hh +++ b/Utils/Logger/Levels.hh @@ -1,8 +1,8 @@ // $Id$ // -// Copyright (C) 2007 -// Fraunhofer Institut fuer offene Kommunikationssysteme (FOKUS) -// Kompetenzzentrum fuer Satelitenkommunikation (SatCom) +// Copyright (C) 2007 +// Fraunhofer Institute for Open Communication Systems (FOKUS) +// Competence Center NETwork research (NET), St. Augustin, GERMANY // Stefan Bund // // This program is free software; you can redistribute it and/or modify @@ -23,8 +23,8 @@ /** \file \brief Levels public header */ -#ifndef HH_Levels_ -#define HH_Levels_ 1 +#ifndef HH_SENF_Utils_Logger_Levels_ +#define HH_SENF_Utils_Logger_Levels_ 1 // Custom includes @@ -37,45 +37,80 @@ namespace log { /** \defgroup loglevels Log levels - These are the valid log levels with some additional special values: + These are the valid %log levels with some additional special values: - \c DISABLED is a special value used as level limit to disable all messages. +
VERBOSE
Really verbose %log messages. Messages at this level are used for + internal debugging. They should be enabled only selectively within the areas currently under + inspection. The default %log stream senf::log::Debug has these messages disabled at + compile time by default. To enable them, see \ref config.
- \c NONE is used to in some special places to inherit the default log level. +
NOTICE
Arbitrary unimportant notice. Message which normally should be disabled + but might be informative to better understand the programs operation.
+ +
MESSAGE
Purely informative message which should be displayed if not explicitly + disabled.
+ +
IMPORTANT
Important information or warning which really should be read.
+ +
CRITICAL
Error condition which does not terminate the program completely but has + non-reversible adverse effects
+ +
FATAL
Error condition which does terminate program execution or enforces a + restart or some kind of re-initialization with loss of state and context.
+ + There are also some special values which must not be used as a %log level: + +
DISABLED
Disable all %log messages.
+ +
NONE
Special value which signifies inheritance of the default %log + level.
+ + Log levels are classes, not numbers. Each %log level class has a \c value member which gives + that levels numeric priority. The larger the number, the more important the message is. + + \implementation The %log levels need to be classes since areas and streams are classes: Since + %log arguments (stream, area and level) may appear in any order and number, it is much + simpler to parse them if they are all of the same type. */ - ///\ingroup loglevels ///\{ - /** \brief Log level VERBOSE + /** \brief Log level %VERBOSE \see loglevels */ struct VERBOSE : public detail::LevelBase { static unsigned const value = 1; }; - /** \brief Log level NOTICE + /** \brief Log level %NOTICE \see loglevels */ struct NOTICE : public detail::LevelBase { static unsigned const value = 2; }; - /** \brief Log level MESSAGE + /** \brief Log level %MESSAGE \see loglevels */ struct MESSAGE : public detail::LevelBase { static unsigned const value = 3; }; - /** \brief Log level IMPORTANT + /** \brief Log level %IMPORTANT \see loglevels */ struct IMPORTANT : public detail::LevelBase { static unsigned const value = 4; }; - /** \brief Log level CRITICAL + /** \brief Log level %CRITICAL \see loglevels */ struct CRITICAL : public detail::LevelBase { static unsigned const value = 5; }; + /** \brief Log level %FATAL + \see loglevels */ + struct FATAL : public detail::LevelBase { static unsigned const value = 6; }; + /** \brief Disable logging \see loglevels */ - struct DISABLED : public detail::LevelBase { static unsigned const value = 6; }; + struct DISABLED : public detail::LevelBase { static unsigned const value = 7; }; - /** \brief Inherit log level + /** \brief Inherit %log level \see loglevels */ struct NONE : public detail::LevelBase { static unsigned const value = 0; }; ///\} + + static char const * const LEVELNAMES[8] = { + "NONE", "VERBOSE", "NOTICE", "MESSAGE", "IMPORTANT", "CRITICAL", "FATAL", "DISABLED" }; }}