fix(macros) scope leaks

- Fix macro scope leak: included in scope guards.
- Move default options as static class members.
- Adds tests to build_all.sh
- Use vanilla std::filesystem
This commit is contained in:
Johann Dreo 2022-08-29 09:09:23 +02:00
commit e35d118cdb
61 changed files with 1899 additions and 1533 deletions

View file

@ -20,6 +20,9 @@ rm -f build_all.log
for t in "Debug" "Release" "RelWithDebInfo"; do
for w in "ON" "OFF"; do
build $t $w
cd ${t}_${w}
ctest
cd ..
done
done

View file

@ -4,12 +4,12 @@
/** @file */
#include <ciso646>
#ifdef FSEXPERIMENTAL
#include <experimental/filesystem>
namespace fs = std::experimental::filesystem;
#ifdef FSEXPERIMENTAL
#include <experimental/filesystem>
namespace fs = std::experimental::filesystem;
#else
#include <filesystem>
namespace fs = std::filesystem;
#include <filesystem>
namespace fs = std::filesystem;
#endif
#include <iostream>
@ -23,23 +23,23 @@ namespace fs = std::filesystem;
#include <map>
#if __has_include(<execinfo.h>) && __has_include(<stdlib.h>) && __has_include(<libgen.h>)
#include <execinfo.h> // execinfo
#include <stdlib.h> // getenv
#include <libgen.h> // basename
//! POSIX headers necessary for stack depth management are available.
#define CLUTCHLOG_HAVE_UNIX_SYSINFO 1
#include <execinfo.h> // execinfo
#include <stdlib.h> // getenv
#include <libgen.h> // basename
//! POSIX headers necessary for stack depth management are available.
#define CLUTCHLOG_HAVE_UNIX_SYSINFO 1
#else
#define CLUTCHLOG_HAVE_UNIX_SYSINFO 0
#define CLUTCHLOG_HAVE_UNIX_SYSINFO 0
#endif
/**********************************************************************
* Enable by default in Debug builds.
**********************************************************************/
#ifndef WITH_CLUTCHLOG
#ifndef NDEBUG
//! Actually enable clutchlog features.
#define WITH_CLUTCHLOG
#endif
#ifndef NDEBUG
//! Actually enable clutchlog features.
#define WITH_CLUTCHLOG
#endif
#endif
/**********************************************************************
@ -50,45 +50,14 @@ namespace fs = std::filesystem;
/** @addtogroup DefaultConfigMacros Default configuration macros
* @{ **/
#ifndef CLUTCHLOG_DEFAULT_FORMAT
//! Default format of the messages.
#if CLUTCHLOG_HAVE_UNIX_SYSINFO == 1
#define CLUTCHLOG_DEFAULT_FORMAT "[{name}] {level_letter}:{depth_marks} {msg}\t\t\t\t\t{func} @ {file}:{line}\n"
#else
#define CLUTCHLOG_DEFAULT_FORMAT "{level_letter} {msg}\t\t\t\t\t{func} @ {file}:{line}\n"
#endif
#endif // CLUTCHLOG_DEFAULT_FORMAT
#ifndef CLUTCHDUMP_DEFAULT_FORMAT
//! Default format of the comment line in file dump.
#if CLUTCHLOG_HAVE_UNIX_SYSINFO == 1
#define CLUTCHDUMP_DEFAULT_FORMAT "# [{name}] {level} in {func} (at depth {depth}) @ {file}:{line}"
#else
#define CLUTCHDUMP_DEFAULT_FORMAT "# {level} in {func} @ {file}:{line}"
#endif
#endif // CLUTCHDUMP_DEFAULT_FORMAT
#ifndef CLUTCHDUMP_DEFAULT_SEP
//! Default item separator for dump.
#define CLUTCHDUMP_DEFAULT_SEP "\n"
#endif // CLUTCHDUMP_DEFAULT_SEP
#ifndef CLUTCHLOG_DEFAULT_DEPTH_MARK
//! Default mark for stack depth.
#define CLUTCHLOG_DEFAULT_DEPTH_MARK ">"
#endif // CLUTCHLOG_DEFAULT_DEPTH_MARK
#ifndef CLUTCHLOG_DEFAULT_DEPTH_BUILT_NODEBUG
//! Default level over which calls to the logger are optimized out when NDEBUG is defined.
#define CLUTCHLOG_DEFAULT_DEPTH_BUILT_NODEBUG clutchlog::level::progress
//! Default level over which calls to the logger are optimized out when NDEBUG is defined.
#define CLUTCHLOG_DEFAULT_DEPTH_BUILT_NODEBUG clutchlog::level::progress
#endif // CLUTCHLOG_DEFAULT_DEPTH_BUILT
#ifndef CLUTCHLOG_STRIP_CALLS
//! Number of call stack levels to remove from depth display by default.
#define CLUTCHLOG_STRIP_CALLS 5
#endif // CLUTCHLOG_STRIP_CALLS
/** @} */
/** @addtogroup UseMacros High-level API macros
* @{ */
@ -97,88 +66,87 @@ namespace fs = std::filesystem;
//! Log a message at the given level.
#ifndef NDEBUG
#define CLUTCHLOG( LEVEL, WHAT ) { \
auto& clutchlog__logger = clutchlog::logger(); \
std::ostringstream clutchlog__msg ; clutchlog__msg << WHAT; \
clutchlog__logger.log(clutchlog::level::LEVEL, clutchlog__msg.str(), CLUTCHLOC); \
}
#else // not Debug build.
#define CLUTCHLOG( LEVEL, WHAT ) { \
if(clutchlog::level::LEVEL <= CLUTCHLOG_DEFAULT_DEPTH_BUILT_NODEBUG) { \
auto& clutchlog__logger = clutchlog::logger(); \
std::ostringstream clutchlog__msg ; clutchlog__msg << WHAT; \
#define CLUTCHLOG( LEVEL, WHAT ) do { \
auto& clutchlog__logger = clutchlog::logger(); \
std::ostringstream clutchlog__msg ; clutchlog__msg << WHAT; \
clutchlog__logger.log(clutchlog::level::LEVEL, clutchlog__msg.str(), CLUTCHLOC); \
} \
}
} while(0)
#else // not Debug build.
#define CLUTCHLOG( LEVEL, WHAT ) do { \
if(clutchlog::level::LEVEL <= CLUTCHLOG_DEFAULT_DEPTH_BUILT_NODEBUG) { \
auto& clutchlog__logger = clutchlog::logger(); \
std::ostringstream clutchlog__msg ; clutchlog__msg << WHAT; \
clutchlog__logger.log(clutchlog::level::LEVEL, clutchlog__msg.str(), CLUTCHLOC); \
} \
} while(0)
#endif // NDEBUG
//! Dump the given container.
#ifndef NDEBUG
#define CLUTCHDUMP( LEVEL, CONTAINER, FILENAME ) { \
auto& clutchlog__logger = clutchlog::logger(); \
clutchlog__logger.dump(clutchlog::level::LEVEL, std::begin(CONTAINER), std::end(CONTAINER), \
CLUTCHLOC, FILENAME, CLUTCHDUMP_DEFAULT_SEP); \
}
#else // not Debug build.
#define CLUTCHDUMP( LEVEL, CONTAINER, FILENAME ) { \
if(clutchlog::level::LEVEL <= CLUTCHLOG_DEFAULT_DEPTH_BUILT_NODEBUG) { \
auto& clutchlog__logger = clutchlog::logger(); \
#define CLUTCHDUMP( LEVEL, CONTAINER, FILENAME ) do { \
auto& clutchlog__logger = clutchlog::logger(); \
clutchlog__logger.dump(clutchlog::level::LEVEL, std::begin(CONTAINER), std::end(CONTAINER), \
CLUTCHLOC, FILENAME, CLUTCHDUMP_DEFAULT_SEP); \
} \
}
CLUTCHLOC, FILENAME, CLUTCHDUMP_DEFAULT_SEP); \
} while(0)
#else // not Debug build.
#define CLUTCHDUMP( LEVEL, CONTAINER, FILENAME ) do { \
if(clutchlog::level::LEVEL <= CLUTCHLOG_DEFAULT_DEPTH_BUILT_NODEBUG) { \
auto& clutchlog__logger = clutchlog::logger(); \
clutchlog__logger.dump(clutchlog::level::LEVEL, std::begin(CONTAINER), std::end(CONTAINER), \
CLUTCHLOC, FILENAME, CLUTCHDUMP_DEFAULT_SEP); \
} \
} while(0)
#endif // NDEBUG
//! Call any function if the scope matches.
#ifndef NDEBUG
#define CLUTCHFUNC( LEVEL, FUNC, ... ) { \
auto& clutchlog__logger = clutchlog::logger(); \
clutchlog::scope_t clutchlog__scope = clutchlog__logger.locate(clutchlog::level::LEVEL, CLUTCHLOC); \
if(clutchlog__scope.matches) { \
FUNC(__VA_ARGS__); \
} \
}
#else // not Debug build.
#define CLUTCHFUNC( LEVEL, FUNC, ... ) { \
if(clutchlog::level::LEVEL <= CLUTCHLOG_DEFAULT_DEPTH_BUILT_NODEBUG) { \
auto& clutchlog__logger = clutchlog::logger(); \
#define CLUTCHFUNC( LEVEL, FUNC, ... ) do { \
auto& clutchlog__logger = clutchlog::logger(); \
clutchlog::scope_t clutchlog__scope = clutchlog__logger.locate(clutchlog::level::LEVEL, CLUTCHLOC); \
if(clutchlog__scope.matches) { \
FUNC(__VA_ARGS__); \
} \
} \
}
if(clutchlog__scope.matches) { \
FUNC(__VA_ARGS__); \
} \
} while(0)
#else // not Debug build.
#define CLUTCHFUNC( LEVEL, FUNC, ... ) do { \
if(clutchlog::level::LEVEL <= CLUTCHLOG_DEFAULT_DEPTH_BUILT_NODEBUG) { \
auto& clutchlog__logger = clutchlog::logger(); \
clutchlog::scope_t clutchlog__scope = clutchlog__logger.locate(clutchlog::level::LEVEL, CLUTCHLOC); \
if(clutchlog__scope.matches) { \
FUNC(__VA_ARGS__); \
} \
} while(0)
#endif // NDEBUG
//! Run any code if the scope matches.
#ifndef NDEBUG
#define CLUTCHCODE( LEVEL, ... ) { \
auto& clutchlog__logger = clutchlog::logger(); \
clutchlog::scope_t clutchlog__scope = clutchlog__logger.locate(clutchlog::level::LEVEL, CLUTCHLOC); \
if(clutchlog__scope.matches) { \
__VA_ARGS__ \
} \
}
#else // not Debug build.
#define CLUTCHCODE( LEVEL, CODE ) { \
if(clutchlog::level::LEVEL <= CLUTCHLOG_DEFAULT_DEPTH_BUILT_NODEBUG) { \
auto& clutchlog__logger = clutchlog::logger(); \
#define CLUTCHCODE( LEVEL, ... ) do { \
auto& clutchlog__logger = clutchlog::logger(); \
clutchlog::scope_t clutchlog__scope = clutchlog__logger.locate(clutchlog::level::LEVEL, CLUTCHLOC); \
if(clutchlog__scope.matches) { \
CODE \
} \
} \
}
if(clutchlog__scope.matches) { \
__VA_ARGS__ \
} \
} while(0)
#else // not Debug build.
#define CLUTCHCODE( LEVEL, CODE ) do { \
if(clutchlog::level::LEVEL <= CLUTCHLOG_DEFAULT_DEPTH_BUILT_NODEBUG) { \
auto& clutchlog__logger = clutchlog::logger(); \
clutchlog::scope_t clutchlog__scope = clutchlog__logger.locate(clutchlog::level::LEVEL, CLUTCHLOC); \
if(clutchlog__scope.matches) { \
CODE \
} \
} \
} while(0)
#endif // NDEBUG
/** @} */
#else // not WITH_CLUTCHLOG
// Disabled macros can still be called in Release builds.
#define CLUTCHLOG( LEVEL, WHAT ) { do {/*nothing*/} while(false); }
#define CLUTCHDUMP( LEVEL, CONTAINER, FILENAME ) { do {/*nothing*/} while(false); }
#define CLUTCHFUNC( LEVEL, FUNC, ... ) { do {/*nothing*/} while(false); }
#define CLUTCHCODE( LEVEL, CODE ) { do {/*nothing*/} while(false); }
// Disabled macros can still be called in Release builds.
#define CLUTCHLOG( LEVEL, WHAT ) do {/*nothing*/} while(0)
#define CLUTCHDUMP( LEVEL, CONTAINER, FILENAME ) do {/*nothing*/} while(0)
#define CLUTCHFUNC( LEVEL, FUNC, ... ) do {/*nothing*/} while(0)
#define CLUTCHCODE( LEVEL, CODE ) do {/*nothing*/} while(0)
#endif // WITH_CLUTCHLOG
/**********************************************************************
@ -195,6 +163,50 @@ namespace fs = std::filesystem;
*/
class clutchlog
{
protected:
/** @addtogroup UseMacros High-level API macros
* @{ */
#ifndef CLUTCHLOG_DEFAULT_FORMAT
//! Default format of the messages.
#if CLUTCHLOG_HAVE_UNIX_SYSINFO == 1
#define CLUTCHLOG_DEFAULT_FORMAT "[{name}] {level_letter}:{depth_marks} {msg}\t\t\t\t\t{func} @ {file}:{line}\n"
#else
#define CLUTCHLOG_DEFAULT_FORMAT "{level_letter} {msg}\t\t\t\t\t{func} @ {file}:{line}\n"
#endif
#endif // CLUTCHLOG_DEFAULT_FORMAT
static inline std::string default_format = CLUTCHLOG_DEFAULT_FORMAT;
#ifndef CLUTCHDUMP_DEFAULT_FORMAT
//! Default format of the comment line in file dump.
#if CLUTCHLOG_HAVE_UNIX_SYSINFO == 1
#define CLUTCHDUMP_DEFAULT_FORMAT "# [{name}] {level} in {func} (at depth {depth}) @ {file}:{line}"
#else
#define CLUTCHDUMP_DEFAULT_FORMAT "# {level} in {func} @ {file}:{line}"
#endif
#endif // CLUTCHDUMP_DEFAULT_FORMAT
static inline std::string dump_default_format = CLUTCHDUMP_DEFAULT_FORMAT;
#ifndef CLUTCHDUMP_DEFAULT_SEP
//! Default item separator for dump.
#define CLUTCHDUMP_DEFAULT_SEP "\n"
#endif // CLUTCHDUMP_DEFAULT_SEP
static inline std::string dump_default_sep = CLUTCHDUMP_DEFAULT_SEP;
#ifndef CLUTCHLOG_DEFAULT_DEPTH_MARK
//! Default mark for stack depth.
#define CLUTCHLOG_DEFAULT_DEPTH_MARK ">"
#endif // CLUTCHLOG_DEFAULT_DEPTH_MARK
static inline std::string default_depth_mark = CLUTCHLOG_DEFAULT_DEPTH_MARK;
#ifndef CLUTCHLOG_STRIP_CALLS
//! Number of call stack levels to remove from depth display by default.
#define CLUTCHLOG_STRIP_CALLS 5
#endif // CLUTCHLOG_STRIP_CALLS
static inline unsigned int strip_calls = CLUTCHLOG_STRIP_CALLS;
/* @} */
public:
/** @name High-level API
* @{ */
@ -347,7 +359,7 @@ class clutchlog
private:
clutchlog() :
// system, main, log
_strip_calls(CLUTCHLOG_STRIP_CALLS),
_strip_calls(clutchlog::strip_calls),
_level_word({
{level::critical,"Critical"},
{level::error ,"Error"},
@ -368,12 +380,12 @@ class clutchlog
{level::debug ,fmt()},
{level::xdebug ,fmt()}
}),
_format_log(CLUTCHLOG_DEFAULT_FORMAT),
_format_dump(CLUTCHDUMP_DEFAULT_FORMAT),
_format_log(clutchlog::default_format),
_format_dump(clutchlog::dump_default_format),
_out(&std::clog),
#if CLUTCHLOG_HAVE_UNIX_SYSINFO == 1
_depth(std::numeric_limits<size_t>::max() - _strip_calls),
_depth_mark(CLUTCHLOG_DEFAULT_DEPTH_MARK),
_depth_mark(clutchlog::default_depth_mark),
#endif
_stage(level::error),
_in_file(".*"),
@ -710,8 +722,8 @@ class clutchlog
const level& stage,
const In container_begin, const In container_end,
const std::string& file, const std::string& func, size_t line,
const std::string& filename_template="dump_{n}.dat",
const std::string sep=CLUTCHDUMP_DEFAULT_SEP
const std::string& filename_template = "dump_{n}.dat",
const std::string sep = dump_default_sep
) const
{
scope_t scope = locate(stage, file, func, line);

View file

@ -83,38 +83,43 @@ $(function() {
<tr bgcolor="#f0f0f0"><td class="entry"><b>clutchlog</b>(clutchlog const &amp;)=delete (defined in <a class="el" href="classclutchlog.html">clutchlog</a>)</td><td class="entry"><a class="el" href="classclutchlog.html">clutchlog</a></td><td class="entry"></td></tr>
<tr bgcolor="#f0f0f0" class="even"><td class="entry"><b>critical</b> enum value (defined in <a class="el" href="classclutchlog.html">clutchlog</a>)</td><td class="entry"><a class="el" href="classclutchlog.html">clutchlog</a></td><td class="entry"></td></tr>
<tr bgcolor="#f0f0f0"><td class="entry"><b>debug</b> enum value (defined in <a class="el" href="classclutchlog.html">clutchlog</a>)</td><td class="entry"><a class="el" href="classclutchlog.html">clutchlog</a></td><td class="entry"></td></tr>
<tr class="even"><td class="entry"><a class="el" href="classclutchlog.html#ae7edb2e14f3d55b201b834255aa4bce9">dump</a>(const level &amp;stage, const In container_begin, const In container_end, const std::string &amp;file, const std::string &amp;func, size_t line, const std::string &amp;filename_template=&quot;dump_{n}.dat&quot;, const std::string sep=CLUTCHDUMP_DEFAULT_SEP) const</td><td class="entry"><a class="el" href="classclutchlog.html">clutchlog</a></td><td class="entry"><span class="mlabel">inline</span></td></tr>
<tr bgcolor="#f0f0f0" class="even"><td class="entry"><b>default_depth_mark</b> (defined in <a class="el" href="classclutchlog.html">clutchlog</a>)</td><td class="entry"><a class="el" href="classclutchlog.html">clutchlog</a></td><td class="entry"><span class="mlabel">inline</span><span class="mlabel">protected</span><span class="mlabel">static</span></td></tr>
<tr bgcolor="#f0f0f0"><td class="entry"><b>default_format</b> (defined in <a class="el" href="classclutchlog.html">clutchlog</a>)</td><td class="entry"><a class="el" href="classclutchlog.html">clutchlog</a></td><td class="entry"><span class="mlabel">inline</span><span class="mlabel">protected</span><span class="mlabel">static</span></td></tr>
<tr class="even"><td class="entry"><a class="el" href="group__UseMacros.html#ga63308e8deae3cfec6801318203494143">dump</a>(const level &amp;stage, const In container_begin, const In container_end, const std::string &amp;file, const std::string &amp;func, size_t line, const std::string &amp;filename_template=&quot;dump_{n}.dat&quot;, const std::string sep=dump_default_sep) const</td><td class="entry"><a class="el" href="classclutchlog.html">clutchlog</a></td><td class="entry"><span class="mlabel">inline</span></td></tr>
<tr bgcolor="#f0f0f0"><td class="entry"><b>dump_default_format</b> (defined in <a class="el" href="classclutchlog.html">clutchlog</a>)</td><td class="entry"><a class="el" href="classclutchlog.html">clutchlog</a></td><td class="entry"><span class="mlabel">inline</span><span class="mlabel">protected</span><span class="mlabel">static</span></td></tr>
<tr bgcolor="#f0f0f0" class="even"><td class="entry"><b>dump_default_sep</b> (defined in <a class="el" href="classclutchlog.html">clutchlog</a>)</td><td class="entry"><a class="el" href="classclutchlog.html">clutchlog</a></td><td class="entry"><span class="mlabel">inline</span><span class="mlabel">protected</span><span class="mlabel">static</span></td></tr>
<tr bgcolor="#f0f0f0"><td class="entry"><b>error</b> enum value (defined in <a class="el" href="classclutchlog.html">clutchlog</a>)</td><td class="entry"><a class="el" href="classclutchlog.html">clutchlog</a></td><td class="entry"></td></tr>
<tr class="even"><td class="entry"><a class="el" href="classclutchlog.html#a10064493c22f5c03b502a42d814c5c5c">file</a>(std::string file)</td><td class="entry"><a class="el" href="classclutchlog.html">clutchlog</a></td><td class="entry"><span class="mlabel">inline</span></td></tr>
<tr><td class="entry"><a class="el" href="classclutchlog.html#a656c277e074b64728cca871f2b484d1c">format</a>(const std::string &amp;format)</td><td class="entry"><a class="el" href="classclutchlog.html">clutchlog</a></td><td class="entry"><span class="mlabel">inline</span></td></tr>
<tr class="even"><td class="entry"><a class="el" href="classclutchlog.html#afc53dbca51d0e2322a21899d0c571a80">format</a>() const</td><td class="entry"><a class="el" href="classclutchlog.html">clutchlog</a></td><td class="entry"><span class="mlabel">inline</span></td></tr>
<tr><td class="entry"><a class="el" href="classclutchlog.html#af1219599b1361562c802779572aa669f">format</a>(std::string format, const std::string &amp;what, const level &amp;stage, const std::string &amp;file, const std::string &amp;func, const size_t line) const</td><td class="entry"><a class="el" href="classclutchlog.html">clutchlog</a></td><td class="entry"><span class="mlabel">inline</span></td></tr>
<tr class="even"><td class="entry"><a class="el" href="classclutchlog.html#a2144abe4ec6f630126b6490908b5f924">format_comment</a>(const std::string &amp;format)</td><td class="entry"><a class="el" href="classclutchlog.html">clutchlog</a></td><td class="entry"><span class="mlabel">inline</span></td></tr>
<tr><td class="entry"><a class="el" href="classclutchlog.html#aa8d0a569ed3623ce36c5e567ec2d1ad5">format_comment</a>() const</td><td class="entry"><a class="el" href="classclutchlog.html">clutchlog</a></td><td class="entry"><span class="mlabel">inline</span></td></tr>
<tr class="even"><td class="entry"><a class="el" href="classclutchlog.html#ad32b5a0274dc03ee0004f67ba58b2447">func</a>(std::string func)</td><td class="entry"><a class="el" href="classclutchlog.html">clutchlog</a></td><td class="entry"><span class="mlabel">inline</span></td></tr>
<tr class="even"><td class="entry"><a class="el" href="group__UseMacros.html#ga10064493c22f5c03b502a42d814c5c5c">file</a>(std::string file)</td><td class="entry"><a class="el" href="classclutchlog.html">clutchlog</a></td><td class="entry"><span class="mlabel">inline</span></td></tr>
<tr><td class="entry"><a class="el" href="group__UseMacros.html#ga656c277e074b64728cca871f2b484d1c">format</a>(const std::string &amp;format)</td><td class="entry"><a class="el" href="classclutchlog.html">clutchlog</a></td><td class="entry"><span class="mlabel">inline</span></td></tr>
<tr class="even"><td class="entry"><a class="el" href="group__UseMacros.html#gafc53dbca51d0e2322a21899d0c571a80">format</a>() const</td><td class="entry"><a class="el" href="classclutchlog.html">clutchlog</a></td><td class="entry"><span class="mlabel">inline</span></td></tr>
<tr><td class="entry"><a class="el" href="group__UseMacros.html#gaf1219599b1361562c802779572aa669f">format</a>(std::string format, const std::string &amp;what, const level &amp;stage, const std::string &amp;file, const std::string &amp;func, const size_t line) const</td><td class="entry"><a class="el" href="classclutchlog.html">clutchlog</a></td><td class="entry"><span class="mlabel">inline</span></td></tr>
<tr class="even"><td class="entry"><a class="el" href="group__UseMacros.html#ga2144abe4ec6f630126b6490908b5f924">format_comment</a>(const std::string &amp;format)</td><td class="entry"><a class="el" href="classclutchlog.html">clutchlog</a></td><td class="entry"><span class="mlabel">inline</span></td></tr>
<tr><td class="entry"><a class="el" href="group__UseMacros.html#gaa8d0a569ed3623ce36c5e567ec2d1ad5">format_comment</a>() const</td><td class="entry"><a class="el" href="classclutchlog.html">clutchlog</a></td><td class="entry"><span class="mlabel">inline</span></td></tr>
<tr class="even"><td class="entry"><a class="el" href="group__UseMacros.html#gad32b5a0274dc03ee0004f67ba58b2447">func</a>(std::string func)</td><td class="entry"><a class="el" href="classclutchlog.html">clutchlog</a></td><td class="entry"><span class="mlabel">inline</span></td></tr>
<tr bgcolor="#f0f0f0"><td class="entry"><b>info</b> enum value (defined in <a class="el" href="classclutchlog.html">clutchlog</a>)</td><td class="entry"><a class="el" href="classclutchlog.html">clutchlog</a></td><td class="entry"></td></tr>
<tr class="even"><td class="entry"><a class="el" href="classclutchlog.html#a10fd25a1b51c8c95bd6d876ce1b4b928">level</a> enum name</td><td class="entry"><a class="el" href="classclutchlog.html">clutchlog</a></td><td class="entry"></td></tr>
<tr><td class="entry"><a class="el" href="classclutchlog.html#acebed8c9df9204f22bf8488e62e1cedd">level_of</a>(const std::string name)</td><td class="entry"><a class="el" href="classclutchlog.html">clutchlog</a></td><td class="entry"><span class="mlabel">inline</span></td></tr>
<tr class="even"><td class="entry"><a class="el" href="classclutchlog.html#aa26c6b81ebaeb9e9daa3457e3a3d17c9">line</a>(std::string line)</td><td class="entry"><a class="el" href="classclutchlog.html">clutchlog</a></td><td class="entry"><span class="mlabel">inline</span></td></tr>
<tr><td class="entry"><a class="el" href="classclutchlog.html#a4ebdfcded6c56262676bf6926d63fc96">locate</a>(const level &amp;stage, const std::string &amp;file, const std::string &amp;func, const size_t line) const</td><td class="entry"><a class="el" href="classclutchlog.html">clutchlog</a></td><td class="entry"><span class="mlabel">inline</span></td></tr>
<tr class="even"><td class="entry"><a class="el" href="classclutchlog.html#a6666106b9e5c239b6ae5e0d1091648e3">location</a>(const std::string &amp;in_file, const std::string &amp;in_function=&quot;.*&quot;, const std::string &amp;in_line=&quot;.*&quot;)</td><td class="entry"><a class="el" href="classclutchlog.html">clutchlog</a></td><td class="entry"><span class="mlabel">inline</span></td></tr>
<tr><td class="entry"><a class="el" href="classclutchlog.html#a23dbb98f0d3c5cc21c232cde16cf317a">log</a>(const level &amp;stage, const std::string &amp;what, const std::string &amp;file, const std::string &amp;func, size_t line) const</td><td class="entry"><a class="el" href="classclutchlog.html">clutchlog</a></td><td class="entry"><span class="mlabel">inline</span></td></tr>
<tr class="even"><td class="entry"><a class="el" href="classclutchlog.html#acfaceb77da01503b432644a3efaee4fa">logger</a>()</td><td class="entry"><a class="el" href="classclutchlog.html">clutchlog</a></td><td class="entry"><span class="mlabel">inline</span><span class="mlabel">static</span></td></tr>
<tr class="even"><td class="entry"><a class="el" href="group__UseMacros.html#ga10fd25a1b51c8c95bd6d876ce1b4b928">level</a> enum name</td><td class="entry"><a class="el" href="classclutchlog.html">clutchlog</a></td><td class="entry"></td></tr>
<tr><td class="entry"><a class="el" href="group__UseMacros.html#gacebed8c9df9204f22bf8488e62e1cedd">level_of</a>(const std::string name)</td><td class="entry"><a class="el" href="classclutchlog.html">clutchlog</a></td><td class="entry"><span class="mlabel">inline</span></td></tr>
<tr class="even"><td class="entry"><a class="el" href="group__UseMacros.html#gaa26c6b81ebaeb9e9daa3457e3a3d17c9">line</a>(std::string line)</td><td class="entry"><a class="el" href="classclutchlog.html">clutchlog</a></td><td class="entry"><span class="mlabel">inline</span></td></tr>
<tr><td class="entry"><a class="el" href="group__UseMacros.html#ga4ebdfcded6c56262676bf6926d63fc96">locate</a>(const level &amp;stage, const std::string &amp;file, const std::string &amp;func, const size_t line) const</td><td class="entry"><a class="el" href="classclutchlog.html">clutchlog</a></td><td class="entry"><span class="mlabel">inline</span></td></tr>
<tr class="even"><td class="entry"><a class="el" href="group__UseMacros.html#ga6666106b9e5c239b6ae5e0d1091648e3">location</a>(const std::string &amp;in_file, const std::string &amp;in_function=&quot;.*&quot;, const std::string &amp;in_line=&quot;.*&quot;)</td><td class="entry"><a class="el" href="classclutchlog.html">clutchlog</a></td><td class="entry"><span class="mlabel">inline</span></td></tr>
<tr><td class="entry"><a class="el" href="group__UseMacros.html#ga23dbb98f0d3c5cc21c232cde16cf317a">log</a>(const level &amp;stage, const std::string &amp;what, const std::string &amp;file, const std::string &amp;func, size_t line) const</td><td class="entry"><a class="el" href="classclutchlog.html">clutchlog</a></td><td class="entry"><span class="mlabel">inline</span></td></tr>
<tr class="even"><td class="entry"><a class="el" href="group__UseMacros.html#gacfaceb77da01503b432644a3efaee4fa">logger</a>()</td><td class="entry"><a class="el" href="classclutchlog.html">clutchlog</a></td><td class="entry"><span class="mlabel">inline</span><span class="mlabel">static</span></td></tr>
<tr bgcolor="#f0f0f0"><td class="entry"><b>max_buffer</b> (defined in <a class="el" href="classclutchlog.html">clutchlog</a>)</td><td class="entry"><a class="el" href="classclutchlog.html">clutchlog</a></td><td class="entry"><span class="mlabel">protected</span><span class="mlabel">static</span></td></tr>
<tr bgcolor="#f0f0f0" class="even"><td class="entry"><b>note</b> enum value (defined in <a class="el" href="classclutchlog.html">clutchlog</a>)</td><td class="entry"><a class="el" href="classclutchlog.html">clutchlog</a></td><td class="entry"></td></tr>
<tr bgcolor="#f0f0f0"><td class="entry"><b>operator=</b>(clutchlog const &amp;)=delete (defined in <a class="el" href="classclutchlog.html">clutchlog</a>)</td><td class="entry"><a class="el" href="classclutchlog.html">clutchlog</a></td><td class="entry"></td></tr>
<tr class="even"><td class="entry"><a class="el" href="classclutchlog.html#a7fd7c7bd3668c537061c314a619a336d">out</a>(std::ostream &amp;out)</td><td class="entry"><a class="el" href="classclutchlog.html">clutchlog</a></td><td class="entry"><span class="mlabel">inline</span></td></tr>
<tr><td class="entry"><a class="el" href="classclutchlog.html#a6c6ab42a1df147e6c2d115bc36ec8266">out</a>()</td><td class="entry"><a class="el" href="classclutchlog.html">clutchlog</a></td><td class="entry"><span class="mlabel">inline</span></td></tr>
<tr class="even"><td class="entry"><a class="el" href="group__UseMacros.html#ga7fd7c7bd3668c537061c314a619a336d">out</a>(std::ostream &amp;out)</td><td class="entry"><a class="el" href="classclutchlog.html">clutchlog</a></td><td class="entry"><span class="mlabel">inline</span></td></tr>
<tr><td class="entry"><a class="el" href="group__UseMacros.html#ga6c6ab42a1df147e6c2d115bc36ec8266">out</a>()</td><td class="entry"><a class="el" href="classclutchlog.html">clutchlog</a></td><td class="entry"><span class="mlabel">inline</span></td></tr>
<tr bgcolor="#f0f0f0" class="even"><td class="entry"><b>progress</b> enum value (defined in <a class="el" href="classclutchlog.html">clutchlog</a>)</td><td class="entry"><a class="el" href="classclutchlog.html">clutchlog</a></td><td class="entry"></td></tr>
<tr><td class="entry"><a class="el" href="classclutchlog.html#a972f895c70edc335f3018a2c8971d59e">replace</a>(const std::string &amp;form, const std::string &amp;mark, const std::string &amp;tag) const</td><td class="entry"><a class="el" href="classclutchlog.html">clutchlog</a></td><td class="entry"><span class="mlabel">inline</span></td></tr>
<tr class="even"><td class="entry"><a class="el" href="classclutchlog.html#ae90d5a1a428587ad67b38b2ea4ca9fa2">replace</a>(const std::string &amp;form, const std::string &amp;mark, const size_t tag) const</td><td class="entry"><a class="el" href="classclutchlog.html">clutchlog</a></td><td class="entry"><span class="mlabel">inline</span></td></tr>
<tr><td class="entry"><a class="el" href="classclutchlog.html#ac3ec55057b9c734b66f169bf43dbd591">style</a>(level stage, FMT... styles)</td><td class="entry"><a class="el" href="classclutchlog.html">clutchlog</a></td><td class="entry"><span class="mlabel">inline</span></td></tr>
<tr class="even"><td class="entry"><a class="el" href="classclutchlog.html#ad1cfa9945c3f7f98fe8ce724c627d0d6">style</a>(level stage, fmt style)</td><td class="entry"><a class="el" href="classclutchlog.html">clutchlog</a></td><td class="entry"><span class="mlabel">inline</span></td></tr>
<tr><td class="entry"><a class="el" href="classclutchlog.html#a4831f44fd5ade102e57320632095934d">style</a>(level stage) const</td><td class="entry"><a class="el" href="classclutchlog.html">clutchlog</a></td><td class="entry"><span class="mlabel">inline</span></td></tr>
<tr class="even"><td class="entry"><a class="el" href="classclutchlog.html#a3cb0e4f43a4cadf1966001ad7c9861f4">threshold</a>(level l)</td><td class="entry"><a class="el" href="classclutchlog.html">clutchlog</a></td><td class="entry"><span class="mlabel">inline</span></td></tr>
<tr><td class="entry"><a class="el" href="classclutchlog.html#ab45287cc9c14217904a13aff49573732">threshold</a>() const</td><td class="entry"><a class="el" href="classclutchlog.html">clutchlog</a></td><td class="entry"><span class="mlabel">inline</span></td></tr>
<tr bgcolor="#f0f0f0" class="even"><td class="entry"><b>warning</b> enum value (defined in <a class="el" href="classclutchlog.html">clutchlog</a>)</td><td class="entry"><a class="el" href="classclutchlog.html">clutchlog</a></td><td class="entry"></td></tr>
<tr bgcolor="#f0f0f0"><td class="entry"><b>xdebug</b> enum value (defined in <a class="el" href="classclutchlog.html">clutchlog</a>)</td><td class="entry"><a class="el" href="classclutchlog.html">clutchlog</a></td><td class="entry"></td></tr>
<tr><td class="entry"><a class="el" href="group__UseMacros.html#ga972f895c70edc335f3018a2c8971d59e">replace</a>(const std::string &amp;form, const std::string &amp;mark, const std::string &amp;tag) const</td><td class="entry"><a class="el" href="classclutchlog.html">clutchlog</a></td><td class="entry"><span class="mlabel">inline</span></td></tr>
<tr class="even"><td class="entry"><a class="el" href="group__UseMacros.html#gae90d5a1a428587ad67b38b2ea4ca9fa2">replace</a>(const std::string &amp;form, const std::string &amp;mark, const size_t tag) const</td><td class="entry"><a class="el" href="classclutchlog.html">clutchlog</a></td><td class="entry"><span class="mlabel">inline</span></td></tr>
<tr bgcolor="#f0f0f0"><td class="entry"><b>strip_calls</b> (defined in <a class="el" href="classclutchlog.html">clutchlog</a>)</td><td class="entry"><a class="el" href="classclutchlog.html">clutchlog</a></td><td class="entry"><span class="mlabel">inline</span><span class="mlabel">protected</span><span class="mlabel">static</span></td></tr>
<tr class="even"><td class="entry"><a class="el" href="group__UseMacros.html#gac3ec55057b9c734b66f169bf43dbd591">style</a>(level stage, FMT... styles)</td><td class="entry"><a class="el" href="classclutchlog.html">clutchlog</a></td><td class="entry"><span class="mlabel">inline</span></td></tr>
<tr><td class="entry"><a class="el" href="group__UseMacros.html#gad1cfa9945c3f7f98fe8ce724c627d0d6">style</a>(level stage, fmt style)</td><td class="entry"><a class="el" href="classclutchlog.html">clutchlog</a></td><td class="entry"><span class="mlabel">inline</span></td></tr>
<tr class="even"><td class="entry"><a class="el" href="group__UseMacros.html#ga4831f44fd5ade102e57320632095934d">style</a>(level stage) const</td><td class="entry"><a class="el" href="classclutchlog.html">clutchlog</a></td><td class="entry"><span class="mlabel">inline</span></td></tr>
<tr><td class="entry"><a class="el" href="group__UseMacros.html#ga3cb0e4f43a4cadf1966001ad7c9861f4">threshold</a>(level l)</td><td class="entry"><a class="el" href="classclutchlog.html">clutchlog</a></td><td class="entry"><span class="mlabel">inline</span></td></tr>
<tr class="even"><td class="entry"><a class="el" href="group__UseMacros.html#gab45287cc9c14217904a13aff49573732">threshold</a>() const</td><td class="entry"><a class="el" href="classclutchlog.html">clutchlog</a></td><td class="entry"><span class="mlabel">inline</span></td></tr>
<tr bgcolor="#f0f0f0"><td class="entry"><b>warning</b> enum value (defined in <a class="el" href="classclutchlog.html">clutchlog</a>)</td><td class="entry"><a class="el" href="classclutchlog.html">clutchlog</a></td><td class="entry"></td></tr>
<tr bgcolor="#f0f0f0" class="even"><td class="entry"><b>xdebug</b> enum value (defined in <a class="el" href="classclutchlog.html">clutchlog</a>)</td><td class="entry"><a class="el" href="classclutchlog.html">clutchlog</a></td><td class="entry"></td></tr>
</table></div><!-- contents -->
<!-- start footer part -->
<hr class="footer"/><address class="footer"><small>

View file

@ -64,6 +64,7 @@ $(function() {
<div class="header">
<div class="summary">
<a href="#nested-classes">Classes</a> &#124;
<a href="#pro-static-attribs">Static Protected Attributes</a> &#124;
<a href="classclutchlog-members.html">List of all members</a> </div>
<div class="headertitle">
<div class="title">clutchlog Class Reference<div class="ingroups"><a class="el" href="group__Main.html">Main class</a></div></div> </div>
@ -82,98 +83,116 @@ Classes</h2></td></tr>
<tr class="heading"><td colspan="2"><h2 class="groupheader"><a name="pub-methods"></a>
Public Member Functions</h2></td></tr>
<tr><td colspan="2"><div class="groupHeader">Configuration accessors</div></td></tr>
<tr class="memitem:a656c277e074b64728cca871f2b484d1c"><td class="memItemLeft" align="right" valign="top"><a id="a656c277e074b64728cca871f2b484d1c"></a>
void&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classclutchlog.html#a656c277e074b64728cca871f2b484d1c">format</a> (const std::string &amp;format)</td></tr>
<tr class="memdesc:a656c277e074b64728cca871f2b484d1c"><td class="mdescLeft">&#160;</td><td class="mdescRight">Set the template string. <br /></td></tr>
<tr class="separator:a656c277e074b64728cca871f2b484d1c"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:afc53dbca51d0e2322a21899d0c571a80"><td class="memItemLeft" align="right" valign="top"><a id="afc53dbca51d0e2322a21899d0c571a80"></a>
std::string&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classclutchlog.html#afc53dbca51d0e2322a21899d0c571a80">format</a> () const</td></tr>
<tr class="memdesc:afc53dbca51d0e2322a21899d0c571a80"><td class="mdescLeft">&#160;</td><td class="mdescRight">Get the template string. <br /></td></tr>
<tr class="separator:afc53dbca51d0e2322a21899d0c571a80"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:a2144abe4ec6f630126b6490908b5f924"><td class="memItemLeft" align="right" valign="top"><a id="a2144abe4ec6f630126b6490908b5f924"></a>
void&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classclutchlog.html#a2144abe4ec6f630126b6490908b5f924">format_comment</a> (const std::string &amp;<a class="el" href="classclutchlog.html#a656c277e074b64728cca871f2b484d1c">format</a>)</td></tr>
<tr class="memdesc:a2144abe4ec6f630126b6490908b5f924"><td class="mdescLeft">&#160;</td><td class="mdescRight">Set the template string for dumps. <br /></td></tr>
<tr class="separator:a2144abe4ec6f630126b6490908b5f924"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:aa8d0a569ed3623ce36c5e567ec2d1ad5"><td class="memItemLeft" align="right" valign="top"><a id="aa8d0a569ed3623ce36c5e567ec2d1ad5"></a>
std::string&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classclutchlog.html#aa8d0a569ed3623ce36c5e567ec2d1ad5">format_comment</a> () const</td></tr>
<tr class="memdesc:aa8d0a569ed3623ce36c5e567ec2d1ad5"><td class="mdescLeft">&#160;</td><td class="mdescRight">Get the template string for dumps. <br /></td></tr>
<tr class="separator:aa8d0a569ed3623ce36c5e567ec2d1ad5"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:a7fd7c7bd3668c537061c314a619a336d"><td class="memItemLeft" align="right" valign="top"><a id="a7fd7c7bd3668c537061c314a619a336d"></a>
void&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classclutchlog.html#a7fd7c7bd3668c537061c314a619a336d">out</a> (std::ostream &amp;out)</td></tr>
<tr class="memdesc:a7fd7c7bd3668c537061c314a619a336d"><td class="mdescLeft">&#160;</td><td class="mdescRight">Set the output stream on which to print. <br /></td></tr>
<tr class="separator:a7fd7c7bd3668c537061c314a619a336d"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:a6c6ab42a1df147e6c2d115bc36ec8266"><td class="memItemLeft" align="right" valign="top"><a id="a6c6ab42a1df147e6c2d115bc36ec8266"></a>
std::ostream &amp;&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classclutchlog.html#a6c6ab42a1df147e6c2d115bc36ec8266">out</a> ()</td></tr>
<tr class="memdesc:a6c6ab42a1df147e6c2d115bc36ec8266"><td class="mdescLeft">&#160;</td><td class="mdescRight">Get the output stream on which to print. <br /></td></tr>
<tr class="separator:a6c6ab42a1df147e6c2d115bc36ec8266"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:a3cb0e4f43a4cadf1966001ad7c9861f4"><td class="memItemLeft" align="right" valign="top"><a id="a3cb0e4f43a4cadf1966001ad7c9861f4"></a>
void&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classclutchlog.html#a3cb0e4f43a4cadf1966001ad7c9861f4">threshold</a> (<a class="el" href="classclutchlog.html#a10fd25a1b51c8c95bd6d876ce1b4b928">level</a> l)</td></tr>
<tr class="memdesc:a3cb0e4f43a4cadf1966001ad7c9861f4"><td class="mdescLeft">&#160;</td><td class="mdescRight">Set the log level below which logs are not printed. <br /></td></tr>
<tr class="separator:a3cb0e4f43a4cadf1966001ad7c9861f4"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:ab45287cc9c14217904a13aff49573732"><td class="memItemLeft" align="right" valign="top"><a id="ab45287cc9c14217904a13aff49573732"></a>
<a class="el" href="classclutchlog.html#a10fd25a1b51c8c95bd6d876ce1b4b928">level</a>&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classclutchlog.html#ab45287cc9c14217904a13aff49573732">threshold</a> () const</td></tr>
<tr class="memdesc:ab45287cc9c14217904a13aff49573732"><td class="mdescLeft">&#160;</td><td class="mdescRight">Get the log level below which logs are not printed. <br /></td></tr>
<tr class="separator:ab45287cc9c14217904a13aff49573732"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:a10064493c22f5c03b502a42d814c5c5c"><td class="memItemLeft" align="right" valign="top"><a id="a10064493c22f5c03b502a42d814c5c5c"></a>
void&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classclutchlog.html#a10064493c22f5c03b502a42d814c5c5c">file</a> (std::string file)</td></tr>
<tr class="memdesc:a10064493c22f5c03b502a42d814c5c5c"><td class="mdescLeft">&#160;</td><td class="mdescRight">Set the regular expression filtering the file location. <br /></td></tr>
<tr class="separator:a10064493c22f5c03b502a42d814c5c5c"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:ad32b5a0274dc03ee0004f67ba58b2447"><td class="memItemLeft" align="right" valign="top"><a id="ad32b5a0274dc03ee0004f67ba58b2447"></a>
void&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classclutchlog.html#ad32b5a0274dc03ee0004f67ba58b2447">func</a> (std::string func)</td></tr>
<tr class="memdesc:ad32b5a0274dc03ee0004f67ba58b2447"><td class="mdescLeft">&#160;</td><td class="mdescRight">Set the regular expression filtering the function location. <br /></td></tr>
<tr class="separator:ad32b5a0274dc03ee0004f67ba58b2447"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:aa26c6b81ebaeb9e9daa3457e3a3d17c9"><td class="memItemLeft" align="right" valign="top"><a id="aa26c6b81ebaeb9e9daa3457e3a3d17c9"></a>
void&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classclutchlog.html#aa26c6b81ebaeb9e9daa3457e3a3d17c9">line</a> (std::string line)</td></tr>
<tr class="memdesc:aa26c6b81ebaeb9e9daa3457e3a3d17c9"><td class="mdescLeft">&#160;</td><td class="mdescRight">Set the regular expression filtering the line location. <br /></td></tr>
<tr class="separator:aa26c6b81ebaeb9e9daa3457e3a3d17c9"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:a6666106b9e5c239b6ae5e0d1091648e3"><td class="memItemLeft" align="right" valign="top"><a id="a6666106b9e5c239b6ae5e0d1091648e3"></a>
void&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classclutchlog.html#a6666106b9e5c239b6ae5e0d1091648e3">location</a> (const std::string &amp;in_file, const std::string &amp;in_function=&quot;.*&quot;, const std::string &amp;in_line=&quot;.*&quot;)</td></tr>
<tr class="memdesc:a6666106b9e5c239b6ae5e0d1091648e3"><td class="mdescLeft">&#160;</td><td class="mdescRight">Set the regular expressions filtering the location. <br /></td></tr>
<tr class="separator:a6666106b9e5c239b6ae5e0d1091648e3"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:ac3ec55057b9c734b66f169bf43dbd591"><td class="memTemplParams" colspan="2">template&lt;class ... FMT&gt; </td></tr>
<tr class="memitem:ac3ec55057b9c734b66f169bf43dbd591"><td class="memTemplItemLeft" align="right" valign="top">void&#160;</td><td class="memTemplItemRight" valign="bottom"><a class="el" href="classclutchlog.html#ac3ec55057b9c734b66f169bf43dbd591">style</a> (<a class="el" href="classclutchlog.html#a10fd25a1b51c8c95bd6d876ce1b4b928">level</a> stage, FMT... styles)</td></tr>
<tr class="memdesc:ac3ec55057b9c734b66f169bf43dbd591"><td class="mdescLeft">&#160;</td><td class="mdescRight">Set the style (color and typo) of the given log level. <a href="classclutchlog.html#ac3ec55057b9c734b66f169bf43dbd591">More...</a><br /></td></tr>
<tr class="separator:ac3ec55057b9c734b66f169bf43dbd591"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:ad1cfa9945c3f7f98fe8ce724c627d0d6"><td class="memItemLeft" align="right" valign="top"><a id="ad1cfa9945c3f7f98fe8ce724c627d0d6"></a>
void&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classclutchlog.html#ad1cfa9945c3f7f98fe8ce724c627d0d6">style</a> (<a class="el" href="classclutchlog.html#a10fd25a1b51c8c95bd6d876ce1b4b928">level</a> stage, <a class="el" href="classclutchlog_1_1fmt.html">fmt</a> style)</td></tr>
<tr class="memdesc:ad1cfa9945c3f7f98fe8ce724c627d0d6"><td class="mdescLeft">&#160;</td><td class="mdescRight">Set the style (color and typo) of the given log level, passing a <code>fmt</code> instance. <br /></td></tr>
<tr class="separator:ad1cfa9945c3f7f98fe8ce724c627d0d6"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:a4831f44fd5ade102e57320632095934d"><td class="memItemLeft" align="right" valign="top"><a id="a4831f44fd5ade102e57320632095934d"></a>
<a class="el" href="classclutchlog_1_1fmt.html">fmt</a>&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classclutchlog.html#a4831f44fd5ade102e57320632095934d">style</a> (<a class="el" href="classclutchlog.html#a10fd25a1b51c8c95bd6d876ce1b4b928">level</a> stage) const</td></tr>
<tr class="memdesc:a4831f44fd5ade102e57320632095934d"><td class="mdescLeft">&#160;</td><td class="mdescRight">Get the configured fmt instance of the given log level. <br /></td></tr>
<tr class="separator:a4831f44fd5ade102e57320632095934d"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:acebed8c9df9204f22bf8488e62e1cedd"><td class="memItemLeft" align="right" valign="top"><a class="el" href="classclutchlog.html#a10fd25a1b51c8c95bd6d876ce1b4b928">level</a>&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classclutchlog.html#acebed8c9df9204f22bf8488e62e1cedd">level_of</a> (const std::string name)</td></tr>
<tr class="memdesc:acebed8c9df9204f22bf8488e62e1cedd"><td class="mdescLeft">&#160;</td><td class="mdescRight">Return the log level tag corresponding to the given pre-configured name. <a href="classclutchlog.html#acebed8c9df9204f22bf8488e62e1cedd">More...</a><br /></td></tr>
<tr class="separator:acebed8c9df9204f22bf8488e62e1cedd"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:ga656c277e074b64728cca871f2b484d1c"><td class="memItemLeft" align="right" valign="top">
void&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="group__UseMacros.html#ga656c277e074b64728cca871f2b484d1c">format</a> (const std::string &amp;format)</td></tr>
<tr class="memdesc:ga656c277e074b64728cca871f2b484d1c"><td class="mdescLeft">&#160;</td><td class="mdescRight">Set the template string. <br /></td></tr>
<tr class="separator:ga656c277e074b64728cca871f2b484d1c"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:gafc53dbca51d0e2322a21899d0c571a80"><td class="memItemLeft" align="right" valign="top">
std::string&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="group__UseMacros.html#gafc53dbca51d0e2322a21899d0c571a80">format</a> () const</td></tr>
<tr class="memdesc:gafc53dbca51d0e2322a21899d0c571a80"><td class="mdescLeft">&#160;</td><td class="mdescRight">Get the template string. <br /></td></tr>
<tr class="separator:gafc53dbca51d0e2322a21899d0c571a80"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:ga2144abe4ec6f630126b6490908b5f924"><td class="memItemLeft" align="right" valign="top">
void&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="group__UseMacros.html#ga2144abe4ec6f630126b6490908b5f924">format_comment</a> (const std::string &amp;<a class="el" href="group__UseMacros.html#ga656c277e074b64728cca871f2b484d1c">format</a>)</td></tr>
<tr class="memdesc:ga2144abe4ec6f630126b6490908b5f924"><td class="mdescLeft">&#160;</td><td class="mdescRight">Set the template string for dumps. <br /></td></tr>
<tr class="separator:ga2144abe4ec6f630126b6490908b5f924"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:gaa8d0a569ed3623ce36c5e567ec2d1ad5"><td class="memItemLeft" align="right" valign="top">
std::string&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="group__UseMacros.html#gaa8d0a569ed3623ce36c5e567ec2d1ad5">format_comment</a> () const</td></tr>
<tr class="memdesc:gaa8d0a569ed3623ce36c5e567ec2d1ad5"><td class="mdescLeft">&#160;</td><td class="mdescRight">Get the template string for dumps. <br /></td></tr>
<tr class="separator:gaa8d0a569ed3623ce36c5e567ec2d1ad5"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:ga7fd7c7bd3668c537061c314a619a336d"><td class="memItemLeft" align="right" valign="top">
void&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="group__UseMacros.html#ga7fd7c7bd3668c537061c314a619a336d">out</a> (std::ostream &amp;out)</td></tr>
<tr class="memdesc:ga7fd7c7bd3668c537061c314a619a336d"><td class="mdescLeft">&#160;</td><td class="mdescRight">Set the output stream on which to print. <br /></td></tr>
<tr class="separator:ga7fd7c7bd3668c537061c314a619a336d"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:ga6c6ab42a1df147e6c2d115bc36ec8266"><td class="memItemLeft" align="right" valign="top">
std::ostream &amp;&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="group__UseMacros.html#ga6c6ab42a1df147e6c2d115bc36ec8266">out</a> ()</td></tr>
<tr class="memdesc:ga6c6ab42a1df147e6c2d115bc36ec8266"><td class="mdescLeft">&#160;</td><td class="mdescRight">Get the output stream on which to print. <br /></td></tr>
<tr class="separator:ga6c6ab42a1df147e6c2d115bc36ec8266"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:ga3cb0e4f43a4cadf1966001ad7c9861f4"><td class="memItemLeft" align="right" valign="top">
void&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="group__UseMacros.html#ga3cb0e4f43a4cadf1966001ad7c9861f4">threshold</a> (<a class="el" href="group__UseMacros.html#ga10fd25a1b51c8c95bd6d876ce1b4b928">level</a> l)</td></tr>
<tr class="memdesc:ga3cb0e4f43a4cadf1966001ad7c9861f4"><td class="mdescLeft">&#160;</td><td class="mdescRight">Set the log level below which logs are not printed. <br /></td></tr>
<tr class="separator:ga3cb0e4f43a4cadf1966001ad7c9861f4"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:gab45287cc9c14217904a13aff49573732"><td class="memItemLeft" align="right" valign="top">
<a class="el" href="group__UseMacros.html#ga10fd25a1b51c8c95bd6d876ce1b4b928">level</a>&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="group__UseMacros.html#gab45287cc9c14217904a13aff49573732">threshold</a> () const</td></tr>
<tr class="memdesc:gab45287cc9c14217904a13aff49573732"><td class="mdescLeft">&#160;</td><td class="mdescRight">Get the log level below which logs are not printed. <br /></td></tr>
<tr class="separator:gab45287cc9c14217904a13aff49573732"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:ga10064493c22f5c03b502a42d814c5c5c"><td class="memItemLeft" align="right" valign="top">
void&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="group__UseMacros.html#ga10064493c22f5c03b502a42d814c5c5c">file</a> (std::string file)</td></tr>
<tr class="memdesc:ga10064493c22f5c03b502a42d814c5c5c"><td class="mdescLeft">&#160;</td><td class="mdescRight">Set the regular expression filtering the file location. <br /></td></tr>
<tr class="separator:ga10064493c22f5c03b502a42d814c5c5c"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:gad32b5a0274dc03ee0004f67ba58b2447"><td class="memItemLeft" align="right" valign="top">
void&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="group__UseMacros.html#gad32b5a0274dc03ee0004f67ba58b2447">func</a> (std::string func)</td></tr>
<tr class="memdesc:gad32b5a0274dc03ee0004f67ba58b2447"><td class="mdescLeft">&#160;</td><td class="mdescRight">Set the regular expression filtering the function location. <br /></td></tr>
<tr class="separator:gad32b5a0274dc03ee0004f67ba58b2447"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:gaa26c6b81ebaeb9e9daa3457e3a3d17c9"><td class="memItemLeft" align="right" valign="top">
void&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="group__UseMacros.html#gaa26c6b81ebaeb9e9daa3457e3a3d17c9">line</a> (std::string line)</td></tr>
<tr class="memdesc:gaa26c6b81ebaeb9e9daa3457e3a3d17c9"><td class="mdescLeft">&#160;</td><td class="mdescRight">Set the regular expression filtering the line location. <br /></td></tr>
<tr class="separator:gaa26c6b81ebaeb9e9daa3457e3a3d17c9"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:ga6666106b9e5c239b6ae5e0d1091648e3"><td class="memItemLeft" align="right" valign="top">
void&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="group__UseMacros.html#ga6666106b9e5c239b6ae5e0d1091648e3">location</a> (const std::string &amp;in_file, const std::string &amp;in_function=&quot;.*&quot;, const std::string &amp;in_line=&quot;.*&quot;)</td></tr>
<tr class="memdesc:ga6666106b9e5c239b6ae5e0d1091648e3"><td class="mdescLeft">&#160;</td><td class="mdescRight">Set the regular expressions filtering the location. <br /></td></tr>
<tr class="separator:ga6666106b9e5c239b6ae5e0d1091648e3"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:gac3ec55057b9c734b66f169bf43dbd591"><td class="memTemplParams" colspan="2">template&lt;class ... FMT&gt; </td></tr>
<tr class="memitem:gac3ec55057b9c734b66f169bf43dbd591"><td class="memTemplItemLeft" align="right" valign="top">void&#160;</td><td class="memTemplItemRight" valign="bottom"><a class="el" href="group__UseMacros.html#gac3ec55057b9c734b66f169bf43dbd591">style</a> (<a class="el" href="group__UseMacros.html#ga10fd25a1b51c8c95bd6d876ce1b4b928">level</a> stage, FMT... styles)</td></tr>
<tr class="memdesc:gac3ec55057b9c734b66f169bf43dbd591"><td class="mdescLeft">&#160;</td><td class="mdescRight">Set the style (color and typo) of the given log level. <a href="group__UseMacros.html#gac3ec55057b9c734b66f169bf43dbd591">More...</a><br /></td></tr>
<tr class="separator:gac3ec55057b9c734b66f169bf43dbd591"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:gad1cfa9945c3f7f98fe8ce724c627d0d6"><td class="memItemLeft" align="right" valign="top">
void&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="group__UseMacros.html#gad1cfa9945c3f7f98fe8ce724c627d0d6">style</a> (<a class="el" href="group__UseMacros.html#ga10fd25a1b51c8c95bd6d876ce1b4b928">level</a> stage, <a class="el" href="classclutchlog_1_1fmt.html">fmt</a> style)</td></tr>
<tr class="memdesc:gad1cfa9945c3f7f98fe8ce724c627d0d6"><td class="mdescLeft">&#160;</td><td class="mdescRight">Set the style (color and typo) of the given log level, passing a <code>fmt</code> instance. <br /></td></tr>
<tr class="separator:gad1cfa9945c3f7f98fe8ce724c627d0d6"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:ga4831f44fd5ade102e57320632095934d"><td class="memItemLeft" align="right" valign="top">
<a class="el" href="classclutchlog_1_1fmt.html">fmt</a>&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="group__UseMacros.html#ga4831f44fd5ade102e57320632095934d">style</a> (<a class="el" href="group__UseMacros.html#ga10fd25a1b51c8c95bd6d876ce1b4b928">level</a> stage) const</td></tr>
<tr class="memdesc:ga4831f44fd5ade102e57320632095934d"><td class="mdescLeft">&#160;</td><td class="mdescRight">Get the configured fmt instance of the given log level. <br /></td></tr>
<tr class="separator:ga4831f44fd5ade102e57320632095934d"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:gacebed8c9df9204f22bf8488e62e1cedd"><td class="memItemLeft" align="right" valign="top"><a class="el" href="group__UseMacros.html#ga10fd25a1b51c8c95bd6d876ce1b4b928">level</a>&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="group__UseMacros.html#gacebed8c9df9204f22bf8488e62e1cedd">level_of</a> (const std::string name)</td></tr>
<tr class="memdesc:gacebed8c9df9204f22bf8488e62e1cedd"><td class="mdescLeft">&#160;</td><td class="mdescRight">Return the log level tag corresponding to the given pre-configured name. <a href="group__UseMacros.html#gacebed8c9df9204f22bf8488e62e1cedd">More...</a><br /></td></tr>
<tr class="separator:gacebed8c9df9204f22bf8488e62e1cedd"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr><td colspan="2"><div class="groupHeader">Low-level API</div></td></tr>
<tr class="memitem:a4ebdfcded6c56262676bf6926d63fc96"><td class="memItemLeft" align="right" valign="top"><a id="a4ebdfcded6c56262676bf6926d63fc96"></a>
<a class="el" href="structclutchlog_1_1scope__t.html">scope_t</a>&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classclutchlog.html#a4ebdfcded6c56262676bf6926d63fc96">locate</a> (const <a class="el" href="classclutchlog.html#a10fd25a1b51c8c95bd6d876ce1b4b928">level</a> &amp;stage, const std::string &amp;<a class="el" href="classclutchlog.html#a10064493c22f5c03b502a42d814c5c5c">file</a>, const std::string &amp;<a class="el" href="classclutchlog.html#ad32b5a0274dc03ee0004f67ba58b2447">func</a>, const size_t <a class="el" href="classclutchlog.html#aa26c6b81ebaeb9e9daa3457e3a3d17c9">line</a>) const</td></tr>
<tr class="memdesc:a4ebdfcded6c56262676bf6926d63fc96"><td class="mdescLeft">&#160;</td><td class="mdescRight">Gather information on the current location of the call. <br /></td></tr>
<tr class="separator:a4ebdfcded6c56262676bf6926d63fc96"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:a972f895c70edc335f3018a2c8971d59e"><td class="memItemLeft" align="right" valign="top">std::string&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classclutchlog.html#a972f895c70edc335f3018a2c8971d59e">replace</a> (const std::string &amp;form, const std::string &amp;mark, const std::string &amp;tag) const</td></tr>
<tr class="memdesc:a972f895c70edc335f3018a2c8971d59e"><td class="mdescLeft">&#160;</td><td class="mdescRight">Replace <code>mark</code> by <code>tag</code> in <code>form</code>. <a href="classclutchlog.html#a972f895c70edc335f3018a2c8971d59e">More...</a><br /></td></tr>
<tr class="separator:a972f895c70edc335f3018a2c8971d59e"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:ae90d5a1a428587ad67b38b2ea4ca9fa2"><td class="memItemLeft" align="right" valign="top"><a id="ae90d5a1a428587ad67b38b2ea4ca9fa2"></a>
std::string&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classclutchlog.html#ae90d5a1a428587ad67b38b2ea4ca9fa2">replace</a> (const std::string &amp;form, const std::string &amp;mark, const size_t tag) const</td></tr>
<tr class="memdesc:ae90d5a1a428587ad67b38b2ea4ca9fa2"><td class="mdescLeft">&#160;</td><td class="mdescRight">Replace <code>mark</code> by <code>tag</code> in <code>form</code>, converting tag to its string representation first. <br /></td></tr>
<tr class="separator:ae90d5a1a428587ad67b38b2ea4ca9fa2"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:af1219599b1361562c802779572aa669f"><td class="memItemLeft" align="right" valign="top"><a id="af1219599b1361562c802779572aa669f"></a>
std::string&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classclutchlog.html#af1219599b1361562c802779572aa669f">format</a> (std::string format, const std::string &amp;what, const <a class="el" href="classclutchlog.html#a10fd25a1b51c8c95bd6d876ce1b4b928">level</a> &amp;stage, const std::string &amp;<a class="el" href="classclutchlog.html#a10064493c22f5c03b502a42d814c5c5c">file</a>, const std::string &amp;<a class="el" href="classclutchlog.html#ad32b5a0274dc03ee0004f67ba58b2447">func</a>, const size_t <a class="el" href="classclutchlog.html#aa26c6b81ebaeb9e9daa3457e3a3d17c9">line</a>) const</td></tr>
<tr class="memdesc:af1219599b1361562c802779572aa669f"><td class="mdescLeft">&#160;</td><td class="mdescRight">Substitute all tags in the format string with the corresponding information and apply the style corresponding to the log level. <br /></td></tr>
<tr class="separator:af1219599b1361562c802779572aa669f"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:a23dbb98f0d3c5cc21c232cde16cf317a"><td class="memItemLeft" align="right" valign="top"><a id="a23dbb98f0d3c5cc21c232cde16cf317a"></a>
void&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classclutchlog.html#a23dbb98f0d3c5cc21c232cde16cf317a">log</a> (const <a class="el" href="classclutchlog.html#a10fd25a1b51c8c95bd6d876ce1b4b928">level</a> &amp;stage, const std::string &amp;what, const std::string &amp;<a class="el" href="classclutchlog.html#a10064493c22f5c03b502a42d814c5c5c">file</a>, const std::string &amp;<a class="el" href="classclutchlog.html#ad32b5a0274dc03ee0004f67ba58b2447">func</a>, size_t <a class="el" href="classclutchlog.html#aa26c6b81ebaeb9e9daa3457e3a3d17c9">line</a>) const</td></tr>
<tr class="memdesc:a23dbb98f0d3c5cc21c232cde16cf317a"><td class="mdescLeft">&#160;</td><td class="mdescRight">Print a log message IF the location matches the given one. <br /></td></tr>
<tr class="separator:a23dbb98f0d3c5cc21c232cde16cf317a"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:ae7edb2e14f3d55b201b834255aa4bce9"><td class="memTemplParams" colspan="2"><a id="ae7edb2e14f3d55b201b834255aa4bce9"></a>
<tr class="memitem:ga4ebdfcded6c56262676bf6926d63fc96"><td class="memItemLeft" align="right" valign="top">
<a class="el" href="structclutchlog_1_1scope__t.html">scope_t</a>&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="group__UseMacros.html#ga4ebdfcded6c56262676bf6926d63fc96">locate</a> (const <a class="el" href="group__UseMacros.html#ga10fd25a1b51c8c95bd6d876ce1b4b928">level</a> &amp;stage, const std::string &amp;<a class="el" href="group__UseMacros.html#ga10064493c22f5c03b502a42d814c5c5c">file</a>, const std::string &amp;<a class="el" href="group__UseMacros.html#gad32b5a0274dc03ee0004f67ba58b2447">func</a>, const size_t <a class="el" href="group__UseMacros.html#gaa26c6b81ebaeb9e9daa3457e3a3d17c9">line</a>) const</td></tr>
<tr class="memdesc:ga4ebdfcded6c56262676bf6926d63fc96"><td class="mdescLeft">&#160;</td><td class="mdescRight">Gather information on the current location of the call. <br /></td></tr>
<tr class="separator:ga4ebdfcded6c56262676bf6926d63fc96"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:ga972f895c70edc335f3018a2c8971d59e"><td class="memItemLeft" align="right" valign="top">std::string&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="group__UseMacros.html#ga972f895c70edc335f3018a2c8971d59e">replace</a> (const std::string &amp;form, const std::string &amp;mark, const std::string &amp;tag) const</td></tr>
<tr class="memdesc:ga972f895c70edc335f3018a2c8971d59e"><td class="mdescLeft">&#160;</td><td class="mdescRight">Replace <code>mark</code> by <code>tag</code> in <code>form</code>. <a href="group__UseMacros.html#ga972f895c70edc335f3018a2c8971d59e">More...</a><br /></td></tr>
<tr class="separator:ga972f895c70edc335f3018a2c8971d59e"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:gae90d5a1a428587ad67b38b2ea4ca9fa2"><td class="memItemLeft" align="right" valign="top">
std::string&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="group__UseMacros.html#gae90d5a1a428587ad67b38b2ea4ca9fa2">replace</a> (const std::string &amp;form, const std::string &amp;mark, const size_t tag) const</td></tr>
<tr class="memdesc:gae90d5a1a428587ad67b38b2ea4ca9fa2"><td class="mdescLeft">&#160;</td><td class="mdescRight">Replace <code>mark</code> by <code>tag</code> in <code>form</code>, converting tag to its string representation first. <br /></td></tr>
<tr class="separator:gae90d5a1a428587ad67b38b2ea4ca9fa2"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:gaf1219599b1361562c802779572aa669f"><td class="memItemLeft" align="right" valign="top">
std::string&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="group__UseMacros.html#gaf1219599b1361562c802779572aa669f">format</a> (std::string format, const std::string &amp;what, const <a class="el" href="group__UseMacros.html#ga10fd25a1b51c8c95bd6d876ce1b4b928">level</a> &amp;stage, const std::string &amp;<a class="el" href="group__UseMacros.html#ga10064493c22f5c03b502a42d814c5c5c">file</a>, const std::string &amp;<a class="el" href="group__UseMacros.html#gad32b5a0274dc03ee0004f67ba58b2447">func</a>, const size_t <a class="el" href="group__UseMacros.html#gaa26c6b81ebaeb9e9daa3457e3a3d17c9">line</a>) const</td></tr>
<tr class="memdesc:gaf1219599b1361562c802779572aa669f"><td class="mdescLeft">&#160;</td><td class="mdescRight">Substitute all tags in the format string with the corresponding information and apply the style corresponding to the log level. <br /></td></tr>
<tr class="separator:gaf1219599b1361562c802779572aa669f"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:ga23dbb98f0d3c5cc21c232cde16cf317a"><td class="memItemLeft" align="right" valign="top">
void&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="group__UseMacros.html#ga23dbb98f0d3c5cc21c232cde16cf317a">log</a> (const <a class="el" href="group__UseMacros.html#ga10fd25a1b51c8c95bd6d876ce1b4b928">level</a> &amp;stage, const std::string &amp;what, const std::string &amp;<a class="el" href="group__UseMacros.html#ga10064493c22f5c03b502a42d814c5c5c">file</a>, const std::string &amp;<a class="el" href="group__UseMacros.html#gad32b5a0274dc03ee0004f67ba58b2447">func</a>, size_t <a class="el" href="group__UseMacros.html#gaa26c6b81ebaeb9e9daa3457e3a3d17c9">line</a>) const</td></tr>
<tr class="memdesc:ga23dbb98f0d3c5cc21c232cde16cf317a"><td class="mdescLeft">&#160;</td><td class="mdescRight">Print a log message IF the location matches the given one. <br /></td></tr>
<tr class="separator:ga23dbb98f0d3c5cc21c232cde16cf317a"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:ga63308e8deae3cfec6801318203494143"><td class="memTemplParams" colspan="2">
template&lt;class In &gt; </td></tr>
<tr class="memitem:ae7edb2e14f3d55b201b834255aa4bce9"><td class="memTemplItemLeft" align="right" valign="top">void&#160;</td><td class="memTemplItemRight" valign="bottom"><a class="el" href="classclutchlog.html#ae7edb2e14f3d55b201b834255aa4bce9">dump</a> (const <a class="el" href="classclutchlog.html#a10fd25a1b51c8c95bd6d876ce1b4b928">level</a> &amp;stage, const In container_begin, const In container_end, const std::string &amp;<a class="el" href="classclutchlog.html#a10064493c22f5c03b502a42d814c5c5c">file</a>, const std::string &amp;<a class="el" href="classclutchlog.html#ad32b5a0274dc03ee0004f67ba58b2447">func</a>, size_t <a class="el" href="classclutchlog.html#aa26c6b81ebaeb9e9daa3457e3a3d17c9">line</a>, const std::string &amp;filename_template=&quot;dump_{n}.dat&quot;, const std::string sep=<a class="el" href="group__DefaultConfigMacros.html#ga54d29e956575e1c731eab5406135c5df">CLUTCHDUMP_DEFAULT_SEP</a>) const</td></tr>
<tr class="memdesc:ae7edb2e14f3d55b201b834255aa4bce9"><td class="mdescLeft">&#160;</td><td class="mdescRight">Dump a serializable container after a comment line with log information. <br /></td></tr>
<tr class="separator:ae7edb2e14f3d55b201b834255aa4bce9"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:ga63308e8deae3cfec6801318203494143"><td class="memTemplItemLeft" align="right" valign="top">void&#160;</td><td class="memTemplItemRight" valign="bottom"><a class="el" href="group__UseMacros.html#ga63308e8deae3cfec6801318203494143">dump</a> (const <a class="el" href="group__UseMacros.html#ga10fd25a1b51c8c95bd6d876ce1b4b928">level</a> &amp;stage, const In container_begin, const In container_end, const std::string &amp;<a class="el" href="group__UseMacros.html#ga10064493c22f5c03b502a42d814c5c5c">file</a>, const std::string &amp;<a class="el" href="group__UseMacros.html#gad32b5a0274dc03ee0004f67ba58b2447">func</a>, size_t <a class="el" href="group__UseMacros.html#gaa26c6b81ebaeb9e9daa3457e3a3d17c9">line</a>, const std::string &amp;filename_template=&quot;dump_{n}.dat&quot;, const std::string sep=dump_default_sep) const</td></tr>
<tr class="memdesc:ga63308e8deae3cfec6801318203494143"><td class="mdescLeft">&#160;</td><td class="mdescRight">Dump a serializable container after a comment line with log information. <br /></td></tr>
<tr class="separator:ga63308e8deae3cfec6801318203494143"><td class="memSeparator" colspan="2">&#160;</td></tr>
</table><table class="memberdecls">
<tr class="heading"><td colspan="2"><h2 class="groupheader"><a name="pro-static-attribs"></a>
Static Protected Attributes</h2></td></tr>
<tr class="memitem:ga0c4ac57601e6f8d146fd5cc060968ecc"><td class="memItemLeft" align="right" valign="top">
static std::string&#160;</td><td class="memItemRight" valign="bottom"><b>default_format</b> = <a class="el" href="group__UseMacros.html#ga524c16f280d92ee8ab683162c9ce01fa">CLUTCHLOG_DEFAULT_FORMAT</a></td></tr>
<tr class="separator:ga0c4ac57601e6f8d146fd5cc060968ecc"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:gace879554298e6e6e36dafef330c27be8"><td class="memItemLeft" align="right" valign="top">
static std::string&#160;</td><td class="memItemRight" valign="bottom"><b>dump_default_format</b> = <a class="el" href="group__UseMacros.html#ga27b613c6727857a7cbcd0165d862034e">CLUTCHDUMP_DEFAULT_FORMAT</a></td></tr>
<tr class="separator:gace879554298e6e6e36dafef330c27be8"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:gaf898bffe23b125245e338d7495c76d45"><td class="memItemLeft" align="right" valign="top">
static std::string&#160;</td><td class="memItemRight" valign="bottom"><b>dump_default_sep</b> = <a class="el" href="group__UseMacros.html#ga54d29e956575e1c731eab5406135c5df">CLUTCHDUMP_DEFAULT_SEP</a></td></tr>
<tr class="separator:gaf898bffe23b125245e338d7495c76d45"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:ga229fd61519f1245282440120f2d45fb5"><td class="memItemLeft" align="right" valign="top">
static std::string&#160;</td><td class="memItemRight" valign="bottom"><b>default_depth_mark</b> = <a class="el" href="group__UseMacros.html#ga45c4c964fad4ad1641d5c9c28c4645b9">CLUTCHLOG_DEFAULT_DEPTH_MARK</a></td></tr>
<tr class="separator:ga229fd61519f1245282440120f2d45fb5"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:gab2002468decc641989cc728f0a4dd4fe"><td class="memItemLeft" align="right" valign="top">
static unsigned int&#160;</td><td class="memItemRight" valign="bottom"><b>strip_calls</b> = <a class="el" href="group__UseMacros.html#ga98f30d814d4913a8a7c93a8793f49adf">CLUTCHLOG_STRIP_CALLS</a></td></tr>
<tr class="separator:gab2002468decc641989cc728f0a4dd4fe"><td class="memSeparator" colspan="2">&#160;</td></tr>
</table><table class="memberdecls">
<tr class="heading"><td colspan="2"><h2 class="groupheader"><a name="member-group"></a>
High-level API</h2></td></tr>
<tr class="memitem:a10fd25a1b51c8c95bd6d876ce1b4b928"><td class="memItemLeft" align="right" valign="top"><a id="a10fd25a1b51c8c95bd6d876ce1b4b928"></a>enum &#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classclutchlog.html#a10fd25a1b51c8c95bd6d876ce1b4b928">level</a> { <br />
<tr class="memitem:ga10fd25a1b51c8c95bd6d876ce1b4b928"><td class="memItemLeft" align="right" valign="top"><a id="ga10fd25a1b51c8c95bd6d876ce1b4b928"></a>enum &#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="group__UseMacros.html#ga10fd25a1b51c8c95bd6d876ce1b4b928">level</a> { <br />
&#160;&#160;<b>critical</b> =0,
<b>error</b> =1,
<b>warning</b> =2,
@ -185,208 +204,61 @@ High-level API</h2></td></tr>
<b>xdebug</b> =7
<br />
}</td></tr>
<tr class="memdesc:a10fd25a1b51c8c95bd6d876ce1b4b928"><td class="mdescLeft">&#160;</td><td class="mdescRight">Available log levels. <br /></td></tr>
<tr class="separator:a10fd25a1b51c8c95bd6d876ce1b4b928"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:acfaceb77da01503b432644a3efaee4fa"><td class="memItemLeft" align="right" valign="top">static <a class="el" href="classclutchlog.html">clutchlog</a> &amp;&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classclutchlog.html#acfaceb77da01503b432644a3efaee4fa">logger</a> ()</td></tr>
<tr class="memdesc:acfaceb77da01503b432644a3efaee4fa"><td class="mdescLeft">&#160;</td><td class="mdescRight">Get the logger instance. <a href="classclutchlog.html#acfaceb77da01503b432644a3efaee4fa">More...</a><br /></td></tr>
<tr class="separator:acfaceb77da01503b432644a3efaee4fa"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memdesc:ga10fd25a1b51c8c95bd6d876ce1b4b928"><td class="mdescLeft">&#160;</td><td class="mdescRight">Available log levels. <br /></td></tr>
<tr class="separator:ga10fd25a1b51c8c95bd6d876ce1b4b928"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:gacfaceb77da01503b432644a3efaee4fa"><td class="memItemLeft" align="right" valign="top">static <a class="el" href="classclutchlog.html">clutchlog</a> &amp;&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="group__UseMacros.html#gacfaceb77da01503b432644a3efaee4fa">logger</a> ()</td></tr>
<tr class="memdesc:gacfaceb77da01503b432644a3efaee4fa"><td class="mdescLeft">&#160;</td><td class="mdescRight">Get the logger instance. <a href="group__UseMacros.html#gacfaceb77da01503b432644a3efaee4fa">More...</a><br /></td></tr>
<tr class="separator:gacfaceb77da01503b432644a3efaee4fa"><td class="memSeparator" colspan="2">&#160;</td></tr>
</table><table class="memberdecls">
<tr class="heading"><td colspan="2"><h2 class="groupheader"><a name="member-group"></a>
Internal details</h2></td></tr>
<tr class="memitem:a56ed762c056c5b1d0020863b11bd188e"><td class="memItemLeft" align="right" valign="top"><a id="a56ed762c056c5b1d0020863b11bd188e"></a>
const size_t&#160;</td><td class="memItemRight" valign="bottom"><b>_strip_calls</b></td></tr>
<tr class="separator:a56ed762c056c5b1d0020863b11bd188e"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:ab1c377a376e6772fe1746ff7147c125f"><td class="memItemLeft" align="right" valign="top"><a id="ab1c377a376e6772fe1746ff7147c125f"></a>
const std::map&lt; <a class="el" href="classclutchlog.html#a10fd25a1b51c8c95bd6d876ce1b4b928">level</a>, std::string &gt;&#160;</td><td class="memItemRight" valign="bottom"><b>_level_word</b></td></tr>
<tr class="separator:ab1c377a376e6772fe1746ff7147c125f"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:abd4625bf211bfbaa30d9c126fa3d7888"><td class="memItemLeft" align="right" valign="top"><a id="abd4625bf211bfbaa30d9c126fa3d7888"></a>
std::map&lt; std::string, <a class="el" href="classclutchlog.html#a10fd25a1b51c8c95bd6d876ce1b4b928">level</a> &gt;&#160;</td><td class="memItemRight" valign="bottom"><b>_word_level</b></td></tr>
<tr class="separator:abd4625bf211bfbaa30d9c126fa3d7888"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:ab805ac5c33885459f9f752518a4aa735"><td class="memItemLeft" align="right" valign="top"><a id="ab805ac5c33885459f9f752518a4aa735"></a>
std::map&lt; <a class="el" href="classclutchlog.html#a10fd25a1b51c8c95bd6d876ce1b4b928">level</a>, <a class="el" href="classclutchlog_1_1fmt.html">fmt</a> &gt;&#160;</td><td class="memItemRight" valign="bottom"><b>_level_fmt</b></td></tr>
<tr class="separator:ab805ac5c33885459f9f752518a4aa735"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:a7c6e3fc082bc6f55d50131ed2b32e81e"><td class="memItemLeft" align="right" valign="top"><a id="a7c6e3fc082bc6f55d50131ed2b32e81e"></a>
std::string&#160;</td><td class="memItemRight" valign="bottom"><b>_format_log</b></td></tr>
<tr class="separator:a7c6e3fc082bc6f55d50131ed2b32e81e"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:a5f4ddb57ce42e8be86a7c7d269f7bae5"><td class="memItemLeft" align="right" valign="top"><a id="a5f4ddb57ce42e8be86a7c7d269f7bae5"></a>
std::string&#160;</td><td class="memItemRight" valign="bottom"><b>_format_dump</b></td></tr>
<tr class="separator:a5f4ddb57ce42e8be86a7c7d269f7bae5"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:a1896f6c4b8597e3e76ff93970bd85167"><td class="memItemLeft" align="right" valign="top"><a id="a1896f6c4b8597e3e76ff93970bd85167"></a>
std::ostream *&#160;</td><td class="memItemRight" valign="bottom"><b>_out</b></td></tr>
<tr class="separator:a1896f6c4b8597e3e76ff93970bd85167"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:aeb60684c89bcef5aa9273075c21cc993"><td class="memItemLeft" align="right" valign="top"><a id="aeb60684c89bcef5aa9273075c21cc993"></a>
<a class="el" href="classclutchlog.html#a10fd25a1b51c8c95bd6d876ce1b4b928">level</a>&#160;</td><td class="memItemRight" valign="bottom"><b>_stage</b></td></tr>
<tr class="separator:aeb60684c89bcef5aa9273075c21cc993"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:aded03528f34d9000f618419c482c5042"><td class="memItemLeft" align="right" valign="top"><a id="aded03528f34d9000f618419c482c5042"></a>
std::regex&#160;</td><td class="memItemRight" valign="bottom"><b>_in_file</b></td></tr>
<tr class="separator:aded03528f34d9000f618419c482c5042"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:a130c4f12eacbd2028102838fe16b734e"><td class="memItemLeft" align="right" valign="top"><a id="a130c4f12eacbd2028102838fe16b734e"></a>
std::regex&#160;</td><td class="memItemRight" valign="bottom"><b>_in_func</b></td></tr>
<tr class="separator:a130c4f12eacbd2028102838fe16b734e"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:a41757198b29862832a14472a9e5e24c6"><td class="memItemLeft" align="right" valign="top"><a id="a41757198b29862832a14472a9e5e24c6"></a>
std::regex&#160;</td><td class="memItemRight" valign="bottom"><b>_in_line</b></td></tr>
<tr class="separator:a41757198b29862832a14472a9e5e24c6"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:ad6a8aef8df1de520a42ee68ee756fbf3"><td class="memItemLeft" align="right" valign="top"><a id="ad6a8aef8df1de520a42ee68ee756fbf3"></a>
<tr class="memitem:gad6a8aef8df1de520a42ee68ee756fbf3"><td class="memItemLeft" align="right" valign="top">
static const size_t&#160;</td><td class="memItemRight" valign="bottom"><b>max_buffer</b> = 4096</td></tr>
<tr class="separator:ad6a8aef8df1de520a42ee68ee756fbf3"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:a0906d74275cedcd403da94879764815e"><td class="memItemLeft" align="right" valign="top"><a id="a0906d74275cedcd403da94879764815e"></a>
<tr class="separator:gad6a8aef8df1de520a42ee68ee756fbf3"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:ga56ed762c056c5b1d0020863b11bd188e"><td class="memItemLeft" align="right" valign="top">
const size_t&#160;</td><td class="memItemRight" valign="bottom"><b>_strip_calls</b></td></tr>
<tr class="separator:ga56ed762c056c5b1d0020863b11bd188e"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:gab1c377a376e6772fe1746ff7147c125f"><td class="memItemLeft" align="right" valign="top">
const std::map&lt; <a class="el" href="group__UseMacros.html#ga10fd25a1b51c8c95bd6d876ce1b4b928">level</a>, std::string &gt;&#160;</td><td class="memItemRight" valign="bottom"><b>_level_word</b></td></tr>
<tr class="separator:gab1c377a376e6772fe1746ff7147c125f"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:gabd4625bf211bfbaa30d9c126fa3d7888"><td class="memItemLeft" align="right" valign="top">
std::map&lt; std::string, <a class="el" href="group__UseMacros.html#ga10fd25a1b51c8c95bd6d876ce1b4b928">level</a> &gt;&#160;</td><td class="memItemRight" valign="bottom"><b>_word_level</b></td></tr>
<tr class="separator:gabd4625bf211bfbaa30d9c126fa3d7888"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:gab805ac5c33885459f9f752518a4aa735"><td class="memItemLeft" align="right" valign="top">
std::map&lt; <a class="el" href="group__UseMacros.html#ga10fd25a1b51c8c95bd6d876ce1b4b928">level</a>, <a class="el" href="classclutchlog_1_1fmt.html">fmt</a> &gt;&#160;</td><td class="memItemRight" valign="bottom"><b>_level_fmt</b></td></tr>
<tr class="separator:gab805ac5c33885459f9f752518a4aa735"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:ga7c6e3fc082bc6f55d50131ed2b32e81e"><td class="memItemLeft" align="right" valign="top">
std::string&#160;</td><td class="memItemRight" valign="bottom"><b>_format_log</b></td></tr>
<tr class="separator:ga7c6e3fc082bc6f55d50131ed2b32e81e"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:ga5f4ddb57ce42e8be86a7c7d269f7bae5"><td class="memItemLeft" align="right" valign="top">
std::string&#160;</td><td class="memItemRight" valign="bottom"><b>_format_dump</b></td></tr>
<tr class="separator:ga5f4ddb57ce42e8be86a7c7d269f7bae5"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:ga1896f6c4b8597e3e76ff93970bd85167"><td class="memItemLeft" align="right" valign="top">
std::ostream *&#160;</td><td class="memItemRight" valign="bottom"><b>_out</b></td></tr>
<tr class="separator:ga1896f6c4b8597e3e76ff93970bd85167"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:gaeb60684c89bcef5aa9273075c21cc993"><td class="memItemLeft" align="right" valign="top">
<a class="el" href="group__UseMacros.html#ga10fd25a1b51c8c95bd6d876ce1b4b928">level</a>&#160;</td><td class="memItemRight" valign="bottom"><b>_stage</b></td></tr>
<tr class="separator:gaeb60684c89bcef5aa9273075c21cc993"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:gaded03528f34d9000f618419c482c5042"><td class="memItemLeft" align="right" valign="top">
std::regex&#160;</td><td class="memItemRight" valign="bottom"><b>_in_file</b></td></tr>
<tr class="separator:gaded03528f34d9000f618419c482c5042"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:ga130c4f12eacbd2028102838fe16b734e"><td class="memItemLeft" align="right" valign="top">
std::regex&#160;</td><td class="memItemRight" valign="bottom"><b>_in_func</b></td></tr>
<tr class="separator:ga130c4f12eacbd2028102838fe16b734e"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:ga41757198b29862832a14472a9e5e24c6"><td class="memItemLeft" align="right" valign="top">
std::regex&#160;</td><td class="memItemRight" valign="bottom"><b>_in_line</b></td></tr>
<tr class="separator:ga41757198b29862832a14472a9e5e24c6"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:ga0906d74275cedcd403da94879764815e"><td class="memItemLeft" align="right" valign="top">
&#160;</td><td class="memItemRight" valign="bottom"><b>clutchlog</b> (<a class="el" href="classclutchlog.html">clutchlog</a> const &amp;)=delete</td></tr>
<tr class="separator:a0906d74275cedcd403da94879764815e"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:aef653a9744a72a889ca8163269bb781e"><td class="memItemLeft" align="right" valign="top"><a id="aef653a9744a72a889ca8163269bb781e"></a>
<tr class="separator:ga0906d74275cedcd403da94879764815e"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:gaef653a9744a72a889ca8163269bb781e"><td class="memItemLeft" align="right" valign="top">
void&#160;</td><td class="memItemRight" valign="bottom"><b>operator=</b> (<a class="el" href="classclutchlog.html">clutchlog</a> const &amp;)=delete</td></tr>
<tr class="separator:aef653a9744a72a889ca8163269bb781e"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="separator:gaef653a9744a72a889ca8163269bb781e"><td class="memSeparator" colspan="2">&#160;</td></tr>
</table>
<h2 class="groupheader">Member Function Documentation</h2>
<a id="acebed8c9df9204f22bf8488e62e1cedd"></a>
<h2 class="memtitle"><span class="permalink"><a href="#acebed8c9df9204f22bf8488e62e1cedd">&#9670;&nbsp;</a></span>level_of()</h2>
<div class="memitem">
<div class="memproto">
<table class="mlabels">
<tr>
<td class="mlabels-left">
<table class="memname">
<tr>
<td class="memname"><a class="el" href="classclutchlog.html#a10fd25a1b51c8c95bd6d876ce1b4b928">level</a> clutchlog::level_of </td>
<td>(</td>
<td class="paramtype">const std::string&#160;</td>
<td class="paramname"><em>name</em></td><td>)</td>
<td></td>
</tr>
</table>
</td>
<td class="mlabels-right">
<span class="mlabels"><span class="mlabel">inline</span></span> </td>
</tr>
</table>
</div><div class="memdoc">
<p>Return the log level tag corresponding to the given pre-configured name. </p>
<dl class="section note"><dt>Note</dt><dd>This is case sensitive, see the pre-configured <code>_level_word</code>. </dd></dl>
</div>
</div>
<a id="acfaceb77da01503b432644a3efaee4fa"></a>
<h2 class="memtitle"><span class="permalink"><a href="#acfaceb77da01503b432644a3efaee4fa">&#9670;&nbsp;</a></span>logger()</h2>
<div class="memitem">
<div class="memproto">
<table class="mlabels">
<tr>
<td class="mlabels-left">
<table class="memname">
<tr>
<td class="memname">static <a class="el" href="classclutchlog.html">clutchlog</a>&amp; clutchlog::logger </td>
<td>(</td>
<td class="paramname"></td><td>)</td>
<td></td>
</tr>
</table>
</td>
<td class="mlabels-right">
<span class="mlabels"><span class="mlabel">inline</span><span class="mlabel">static</span></span> </td>
</tr>
</table>
</div><div class="memdoc">
<p>Get the logger instance. </p>
<div class="fragment"><div class="line"><span class="keyword">auto</span>&amp; <a class="code" href="classclutchlog.html#a23dbb98f0d3c5cc21c232cde16cf317a">log</a> = <a class="code" href="classclutchlog.html#acfaceb77da01503b432644a3efaee4fa">clutchlog::logger</a>();</div>
</div><!-- fragment -->
</div>
</div>
<a id="a972f895c70edc335f3018a2c8971d59e"></a>
<h2 class="memtitle"><span class="permalink"><a href="#a972f895c70edc335f3018a2c8971d59e">&#9670;&nbsp;</a></span>replace()</h2>
<div class="memitem">
<div class="memproto">
<table class="mlabels">
<tr>
<td class="mlabels-left">
<table class="memname">
<tr>
<td class="memname">std::string clutchlog::replace </td>
<td>(</td>
<td class="paramtype">const std::string &amp;&#160;</td>
<td class="paramname"><em>form</em>, </td>
</tr>
<tr>
<td class="paramkey"></td>
<td></td>
<td class="paramtype">const std::string &amp;&#160;</td>
<td class="paramname"><em>mark</em>, </td>
</tr>
<tr>
<td class="paramkey"></td>
<td></td>
<td class="paramtype">const std::string &amp;&#160;</td>
<td class="paramname"><em>tag</em>&#160;</td>
</tr>
<tr>
<td></td>
<td>)</td>
<td></td><td> const</td>
</tr>
</table>
</td>
<td class="mlabels-right">
<span class="mlabels"><span class="mlabel">inline</span></span> </td>
</tr>
</table>
</div><div class="memdoc">
<p>Replace <code>mark</code> by <code>tag</code> in <code>form</code>. </p>
<div class="fragment"><div class="line"><a class="code" href="classclutchlog.html#a23dbb98f0d3c5cc21c232cde16cf317a">log</a>.replace(<span class="stringliteral">&quot;{greet} {world}&quot;</span>, <span class="stringliteral">&quot;\\{greet\\}&quot;</span>, <span class="stringliteral">&quot;hello&quot;</span>);</div>
<div class="line"><span class="comment">// returns &quot;hello {world}&quot;</span></div>
</div><!-- fragment -->
</div>
</div>
<a id="ac3ec55057b9c734b66f169bf43dbd591"></a>
<h2 class="memtitle"><span class="permalink"><a href="#ac3ec55057b9c734b66f169bf43dbd591">&#9670;&nbsp;</a></span>style()</h2>
<div class="memitem">
<div class="memproto">
<div class="memtemplate">
template&lt;class ... FMT&gt; </div>
<table class="mlabels">
<tr>
<td class="mlabels-left">
<table class="memname">
<tr>
<td class="memname">void clutchlog::style </td>
<td>(</td>
<td class="paramtype"><a class="el" href="classclutchlog.html#a10fd25a1b51c8c95bd6d876ce1b4b928">level</a>&#160;</td>
<td class="paramname"><em>stage</em>, </td>
</tr>
<tr>
<td class="paramkey"></td>
<td></td>
<td class="paramtype">FMT...&#160;</td>
<td class="paramname"><em>styles</em>&#160;</td>
</tr>
<tr>
<td></td>
<td>)</td>
<td></td><td></td>
</tr>
</table>
</td>
<td class="mlabels-right">
<span class="mlabels"><span class="mlabel">inline</span></span> </td>
</tr>
</table>
</div><div class="memdoc">
<p>Set the style (color and typo) of the given log level. </p>
<p>This version accept style arguments as if they were passed to <code><a class="el" href="classclutchlog_1_1fmt.html" title="Color and style formatter for ANSI terminal escape sequences.">clutchlog::fmt</a></code>. </p>
</div>
</div>
<hr/>The documentation for this class was generated from the following file:<ul>
<li>clutchlog/<a class="el" href="clutchlog_8h_source.html">clutchlog.h</a></li>
</ul>
</div><!-- contents -->
<div class="ttc" id="aclassclutchlog_html_a23dbb98f0d3c5cc21c232cde16cf317a"><div class="ttname"><a href="classclutchlog.html#a23dbb98f0d3c5cc21c232cde16cf317a">clutchlog::log</a></div><div class="ttdeci">void log(const level &amp;stage, const std::string &amp;what, const std::string &amp;file, const std::string &amp;func, size_t line) const</div><div class="ttdoc">Print a log message IF the location matches the given one.</div><div class="ttdef"><b>Definition:</b> clutchlog.h:684</div></div>
<div class="ttc" id="aclassclutchlog_html_acfaceb77da01503b432644a3efaee4fa"><div class="ttname"><a href="classclutchlog.html#acfaceb77da01503b432644a3efaee4fa">clutchlog::logger</a></div><div class="ttdeci">static clutchlog &amp; logger()</div><div class="ttdoc">Get the logger instance.</div><div class="ttdef"><b>Definition:</b> clutchlog.h:208</div></div>
<!-- start footer part -->
<hr class="footer"/><address class="footer"><small>
Generated by &#160;<a href="http://www.doxygen.org/index.html">

View file

@ -74,9 +74,9 @@ $(function() {
<p>This is the complete list of members for <a class="el" href="classclutchlog_1_1fmt.html">clutchlog::fmt</a>, including all inherited members.</p>
<table class="directory">
<tr bgcolor="#f0f0f0" class="even"><td class="entry"><b>back</b> (defined in <a class="el" href="classclutchlog_1_1fmt.html">clutchlog::fmt</a>)</td><td class="entry"><a class="el" href="classclutchlog_1_1fmt.html">clutchlog::fmt</a></td><td class="entry"></td></tr>
<tr><td class="entry"><a class="el" href="classclutchlog_1_1fmt.html#a1cf3e27e4041250ffea0a6d58010da1e">bg</a> enum name</td><td class="entry"><a class="el" href="classclutchlog_1_1fmt.html">clutchlog::fmt</a></td><td class="entry"></td></tr>
<tr class="even"><td class="entry"><a class="el" href="classclutchlog_1_1fmt.html#a4662a3ec3577c6a575a2c734636ed8a0">fg</a> enum name</td><td class="entry"><a class="el" href="classclutchlog_1_1fmt.html">clutchlog::fmt</a></td><td class="entry"></td></tr>
<tr><td class="entry"><a class="el" href="classclutchlog_1_1fmt.html#a407506bc02ed3f91d88b3df630e54959">fmt</a>()</td><td class="entry"><a class="el" href="classclutchlog_1_1fmt.html">clutchlog::fmt</a></td><td class="entry"><span class="mlabel">inline</span></td></tr>
<tr><td class="entry"><a class="el" href="group__UseMacros.html#ga1cf3e27e4041250ffea0a6d58010da1e">bg</a> enum name</td><td class="entry"><a class="el" href="classclutchlog_1_1fmt.html">clutchlog::fmt</a></td><td class="entry"></td></tr>
<tr class="even"><td class="entry"><a class="el" href="group__UseMacros.html#ga4662a3ec3577c6a575a2c734636ed8a0">fg</a> enum name</td><td class="entry"><a class="el" href="classclutchlog_1_1fmt.html">clutchlog::fmt</a></td><td class="entry"></td></tr>
<tr><td class="entry"><a class="el" href="group__UseMacros.html#ga407506bc02ed3f91d88b3df630e54959">fmt</a>()</td><td class="entry"><a class="el" href="classclutchlog_1_1fmt.html">clutchlog::fmt</a></td><td class="entry"><span class="mlabel">inline</span></td></tr>
<tr bgcolor="#f0f0f0" class="even"><td class="entry"><b>fmt</b>(fg f, bg b=bg::none, typo s=typo::none) (defined in <a class="el" href="classclutchlog_1_1fmt.html">clutchlog::fmt</a>)</td><td class="entry"><a class="el" href="classclutchlog_1_1fmt.html">clutchlog::fmt</a></td><td class="entry"><span class="mlabel">inline</span></td></tr>
<tr bgcolor="#f0f0f0"><td class="entry"><b>fmt</b>(fg f, typo s, bg b=bg::none) (defined in <a class="el" href="classclutchlog_1_1fmt.html">clutchlog::fmt</a>)</td><td class="entry"><a class="el" href="classclutchlog_1_1fmt.html">clutchlog::fmt</a></td><td class="entry"><span class="mlabel">inline</span></td></tr>
<tr bgcolor="#f0f0f0" class="even"><td class="entry"><b>fmt</b>(bg b, fg f=fg::none, typo s=typo::none) (defined in <a class="el" href="classclutchlog_1_1fmt.html">clutchlog::fmt</a>)</td><td class="entry"><a class="el" href="classclutchlog_1_1fmt.html">clutchlog::fmt</a></td><td class="entry"><span class="mlabel">inline</span></td></tr>
@ -84,11 +84,11 @@ $(function() {
<tr bgcolor="#f0f0f0" class="even"><td class="entry"><b>fmt</b>(typo s, fg f=fg::none, bg b=bg::none) (defined in <a class="el" href="classclutchlog_1_1fmt.html">clutchlog::fmt</a>)</td><td class="entry"><a class="el" href="classclutchlog_1_1fmt.html">clutchlog::fmt</a></td><td class="entry"><span class="mlabel">inline</span></td></tr>
<tr bgcolor="#f0f0f0"><td class="entry"><b>fmt</b>(typo s, bg b, fg f=fg::none) (defined in <a class="el" href="classclutchlog_1_1fmt.html">clutchlog::fmt</a>)</td><td class="entry"><a class="el" href="classclutchlog_1_1fmt.html">clutchlog::fmt</a></td><td class="entry"><span class="mlabel">inline</span></td></tr>
<tr bgcolor="#f0f0f0" class="even"><td class="entry"><b>fore</b> (defined in <a class="el" href="classclutchlog_1_1fmt.html">clutchlog::fmt</a>)</td><td class="entry"><a class="el" href="classclutchlog_1_1fmt.html">clutchlog::fmt</a></td><td class="entry"></td></tr>
<tr><td class="entry"><a class="el" href="classclutchlog_1_1fmt.html#afeaedd18298498d1dcfcc15f5f17ac3c">operator()</a>(const std::string &amp;msg) const</td><td class="entry"><a class="el" href="classclutchlog_1_1fmt.html">clutchlog::fmt</a></td><td class="entry"><span class="mlabel">inline</span></td></tr>
<tr class="even"><td class="entry"><a class="el" href="classclutchlog_1_1fmt.html#a96849ba427feac3a2eeaa1165e3845da">operator&lt;&lt;</a>(std::ostream &amp;os, const fmt &amp;fmt)</td><td class="entry"><a class="el" href="classclutchlog_1_1fmt.html">clutchlog::fmt</a></td><td class="entry"><span class="mlabel">friend</span></td></tr>
<tr><td class="entry"><a class="el" href="classclutchlog_1_1fmt.html#a0b607e343b6813b99eafca1fdfec9cd0">print_on</a>(std::ostream &amp;os) const</td><td class="entry"><a class="el" href="classclutchlog_1_1fmt.html">clutchlog::fmt</a></td><td class="entry"><span class="mlabel">inline</span><span class="mlabel">protected</span></td></tr>
<tr><td class="entry"><a class="el" href="group__UseMacros.html#gafeaedd18298498d1dcfcc15f5f17ac3c">operator()</a>(const std::string &amp;msg) const</td><td class="entry"><a class="el" href="classclutchlog_1_1fmt.html">clutchlog::fmt</a></td><td class="entry"><span class="mlabel">inline</span></td></tr>
<tr class="even"><td class="entry"><a class="el" href="group__UseMacros.html#ga96849ba427feac3a2eeaa1165e3845da">operator&lt;&lt;</a>(std::ostream &amp;os, const fmt &amp;fmt)</td><td class="entry"><a class="el" href="classclutchlog_1_1fmt.html">clutchlog::fmt</a></td><td class="entry"><span class="mlabel">friend</span></td></tr>
<tr><td class="entry"><a class="el" href="group__UseMacros.html#ga0b607e343b6813b99eafca1fdfec9cd0">print_on</a>(std::ostream &amp;os) const</td><td class="entry"><a class="el" href="classclutchlog_1_1fmt.html">clutchlog::fmt</a></td><td class="entry"><span class="mlabel">inline</span><span class="mlabel">protected</span></td></tr>
<tr bgcolor="#f0f0f0" class="even"><td class="entry"><b>style</b> (defined in <a class="el" href="classclutchlog_1_1fmt.html">clutchlog::fmt</a>)</td><td class="entry"><a class="el" href="classclutchlog_1_1fmt.html">clutchlog::fmt</a></td><td class="entry"></td></tr>
<tr><td class="entry"><a class="el" href="classclutchlog_1_1fmt.html#a932f47b78fb7b10590d5613a1c4eab89">typo</a> enum name</td><td class="entry"><a class="el" href="classclutchlog_1_1fmt.html">clutchlog::fmt</a></td><td class="entry"></td></tr>
<tr><td class="entry"><a class="el" href="group__UseMacros.html#ga932f47b78fb7b10590d5613a1c4eab89">typo</a> enum name</td><td class="entry"><a class="el" href="classclutchlog_1_1fmt.html">clutchlog::fmt</a></td><td class="entry"></td></tr>
</table></div><!-- contents -->
<!-- start footer part -->
<hr class="footer"/><address class="footer"><small>

View file

@ -74,7 +74,7 @@ $(function() {
<a href="#friends">Friends</a> &#124;
<a href="classclutchlog_1_1fmt-members.html">List of all members</a> </div>
<div class="headertitle">
<div class="title">clutchlog::fmt Class Reference<div class="ingroups"><a class="el" href="group__Formating.html">Formating tools</a></div></div> </div>
<div class="title">clutchlog::fmt Class Reference<div class="ingroups"><a class="el" href="group__UseMacros.html">High-level API macros</a> &raquo; <a class="el" href="group__Formating.html">Formating tools</a></div></div> </div>
</div><!--header-->
<div class="contents">
@ -85,7 +85,7 @@ $(function() {
<table class="memberdecls">
<tr class="heading"><td colspan="2"><h2 class="groupheader"><a name="pub-types"></a>
Public Types</h2></td></tr>
<tr class="memitem:a4662a3ec3577c6a575a2c734636ed8a0"><td class="memItemLeft" align="right" valign="top"><a id="a4662a3ec3577c6a575a2c734636ed8a0"></a>enum &#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classclutchlog_1_1fmt.html#a4662a3ec3577c6a575a2c734636ed8a0">fg</a> { <br />
<tr class="memitem:ga4662a3ec3577c6a575a2c734636ed8a0"><td class="memItemLeft" align="right" valign="top"><a id="ga4662a3ec3577c6a575a2c734636ed8a0"></a>enum &#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="group__UseMacros.html#ga4662a3ec3577c6a575a2c734636ed8a0">fg</a> { <br />
&#160;&#160;<b>black</b> = 30,
<b>red</b> = 31,
<b>green</b> = 32,
@ -99,9 +99,9 @@ Public Types</h2></td></tr>
&#160;&#160;<b>none</b>
<br />
}</td></tr>
<tr class="memdesc:a4662a3ec3577c6a575a2c734636ed8a0"><td class="mdescLeft">&#160;</td><td class="mdescRight">Foreground color codes. <br /></td></tr>
<tr class="separator:a4662a3ec3577c6a575a2c734636ed8a0"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:a1cf3e27e4041250ffea0a6d58010da1e"><td class="memItemLeft" align="right" valign="top"><a id="a1cf3e27e4041250ffea0a6d58010da1e"></a>enum &#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classclutchlog_1_1fmt.html#a1cf3e27e4041250ffea0a6d58010da1e">bg</a> { <br />
<tr class="memdesc:ga4662a3ec3577c6a575a2c734636ed8a0"><td class="mdescLeft">&#160;</td><td class="mdescRight">Foreground color codes. <br /></td></tr>
<tr class="separator:ga4662a3ec3577c6a575a2c734636ed8a0"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:ga1cf3e27e4041250ffea0a6d58010da1e"><td class="memItemLeft" align="right" valign="top"><a id="ga1cf3e27e4041250ffea0a6d58010da1e"></a>enum &#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="group__UseMacros.html#ga1cf3e27e4041250ffea0a6d58010da1e">bg</a> { <br />
&#160;&#160;<b>black</b> = 40,
<b>red</b> = 41,
<b>green</b> = 42,
@ -115,9 +115,9 @@ Public Types</h2></td></tr>
&#160;&#160;<b>none</b>
<br />
}</td></tr>
<tr class="memdesc:a1cf3e27e4041250ffea0a6d58010da1e"><td class="mdescLeft">&#160;</td><td class="mdescRight">Background color codes. <br /></td></tr>
<tr class="separator:a1cf3e27e4041250ffea0a6d58010da1e"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:a932f47b78fb7b10590d5613a1c4eab89"><td class="memItemLeft" align="right" valign="top"><a id="a932f47b78fb7b10590d5613a1c4eab89"></a>enum &#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classclutchlog_1_1fmt.html#a932f47b78fb7b10590d5613a1c4eab89">typo</a> { <br />
<tr class="memdesc:ga1cf3e27e4041250ffea0a6d58010da1e"><td class="mdescLeft">&#160;</td><td class="mdescRight">Background color codes. <br /></td></tr>
<tr class="separator:ga1cf3e27e4041250ffea0a6d58010da1e"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:ga932f47b78fb7b10590d5613a1c4eab89"><td class="memItemLeft" align="right" valign="top"><a id="ga932f47b78fb7b10590d5613a1c4eab89"></a>enum &#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="group__UseMacros.html#ga932f47b78fb7b10590d5613a1c4eab89">typo</a> { <br />
&#160;&#160;<b>reset</b> = 0,
<b>bold</b> = 1,
<b>underline</b> = 4,
@ -126,146 +126,70 @@ Public Types</h2></td></tr>
&#160;&#160;<b>none</b>
<br />
}</td></tr>
<tr class="memdesc:a932f47b78fb7b10590d5613a1c4eab89"><td class="mdescLeft">&#160;</td><td class="mdescRight">Typographic style codes. <br /></td></tr>
<tr class="separator:a932f47b78fb7b10590d5613a1c4eab89"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memdesc:ga932f47b78fb7b10590d5613a1c4eab89"><td class="mdescLeft">&#160;</td><td class="mdescRight">Typographic style codes. <br /></td></tr>
<tr class="separator:ga932f47b78fb7b10590d5613a1c4eab89"><td class="memSeparator" colspan="2">&#160;</td></tr>
</table><table class="memberdecls">
<tr class="heading"><td colspan="2"><h2 class="groupheader"><a name="pub-methods"></a>
Public Member Functions</h2></td></tr>
<tr class="memitem:a407506bc02ed3f91d88b3df630e54959"><td class="memItemLeft" align="right" valign="top"><a id="a407506bc02ed3f91d88b3df630e54959"></a>
&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classclutchlog_1_1fmt.html#a407506bc02ed3f91d88b3df630e54959">fmt</a> ()</td></tr>
<tr class="memdesc:a407506bc02ed3f91d88b3df630e54959"><td class="mdescLeft">&#160;</td><td class="mdescRight">&#160;Empty constructor, only useful for a no-op formatter. <br /></td></tr>
<tr class="separator:a407506bc02ed3f91d88b3df630e54959"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:afeaedd18298498d1dcfcc15f5f17ac3c"><td class="memItemLeft" align="right" valign="top">std::string&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classclutchlog_1_1fmt.html#afeaedd18298498d1dcfcc15f5f17ac3c">operator()</a> (const std::string &amp;msg) const</td></tr>
<tr class="memdesc:afeaedd18298498d1dcfcc15f5f17ac3c"><td class="mdescLeft">&#160;</td><td class="mdescRight">Format the given string with the currently encoded format. <a href="classclutchlog_1_1fmt.html#afeaedd18298498d1dcfcc15f5f17ac3c">More...</a><br /></td></tr>
<tr class="separator:afeaedd18298498d1dcfcc15f5f17ac3c"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:ga407506bc02ed3f91d88b3df630e54959"><td class="memItemLeft" align="right" valign="top">
&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="group__UseMacros.html#ga407506bc02ed3f91d88b3df630e54959">fmt</a> ()</td></tr>
<tr class="memdesc:ga407506bc02ed3f91d88b3df630e54959"><td class="mdescLeft">&#160;</td><td class="mdescRight">&#160;Empty constructor, only useful for a no-op formatter. <br /></td></tr>
<tr class="separator:ga407506bc02ed3f91d88b3df630e54959"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:gafeaedd18298498d1dcfcc15f5f17ac3c"><td class="memItemLeft" align="right" valign="top">std::string&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="group__UseMacros.html#gafeaedd18298498d1dcfcc15f5f17ac3c">operator()</a> (const std::string &amp;msg) const</td></tr>
<tr class="memdesc:gafeaedd18298498d1dcfcc15f5f17ac3c"><td class="mdescLeft">&#160;</td><td class="mdescRight">Format the given string with the currently encoded format. <a href="group__UseMacros.html#gafeaedd18298498d1dcfcc15f5f17ac3c">More...</a><br /></td></tr>
<tr class="separator:gafeaedd18298498d1dcfcc15f5f17ac3c"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr><td colspan="2"><div class="groupHeader">All combination of constructors with different parameters orders.</div></td></tr>
<tr class="memitem:a6cc6126d113fc0647ed3acbf29cdc425"><td class="memItemLeft" align="right" valign="top"><a id="a6cc6126d113fc0647ed3acbf29cdc425"></a>
&#160;</td><td class="memItemRight" valign="bottom"><b>fmt</b> (<a class="el" href="classclutchlog_1_1fmt.html#a4662a3ec3577c6a575a2c734636ed8a0">fg</a> f, <a class="el" href="classclutchlog_1_1fmt.html#a1cf3e27e4041250ffea0a6d58010da1e">bg</a> b=bg::none, <a class="el" href="classclutchlog_1_1fmt.html#a932f47b78fb7b10590d5613a1c4eab89">typo</a> s=typo::none)</td></tr>
<tr class="separator:a6cc6126d113fc0647ed3acbf29cdc425"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:ac69e6d3b7ddaec908c429ac61f354267"><td class="memItemLeft" align="right" valign="top"><a id="ac69e6d3b7ddaec908c429ac61f354267"></a>
&#160;</td><td class="memItemRight" valign="bottom"><b>fmt</b> (<a class="el" href="classclutchlog_1_1fmt.html#a4662a3ec3577c6a575a2c734636ed8a0">fg</a> f, <a class="el" href="classclutchlog_1_1fmt.html#a932f47b78fb7b10590d5613a1c4eab89">typo</a> s, <a class="el" href="classclutchlog_1_1fmt.html#a1cf3e27e4041250ffea0a6d58010da1e">bg</a> b=bg::none)</td></tr>
<tr class="separator:ac69e6d3b7ddaec908c429ac61f354267"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:a13453c0b5dbc19d9b510dcdc0352b443"><td class="memItemLeft" align="right" valign="top"><a id="a13453c0b5dbc19d9b510dcdc0352b443"></a>
&#160;</td><td class="memItemRight" valign="bottom"><b>fmt</b> (<a class="el" href="classclutchlog_1_1fmt.html#a1cf3e27e4041250ffea0a6d58010da1e">bg</a> b, <a class="el" href="classclutchlog_1_1fmt.html#a4662a3ec3577c6a575a2c734636ed8a0">fg</a> f=fg::none, <a class="el" href="classclutchlog_1_1fmt.html#a932f47b78fb7b10590d5613a1c4eab89">typo</a> s=typo::none)</td></tr>
<tr class="separator:a13453c0b5dbc19d9b510dcdc0352b443"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:a65856874070ec0865b3a5b9aeb0e4f3d"><td class="memItemLeft" align="right" valign="top"><a id="a65856874070ec0865b3a5b9aeb0e4f3d"></a>
&#160;</td><td class="memItemRight" valign="bottom"><b>fmt</b> (<a class="el" href="classclutchlog_1_1fmt.html#a1cf3e27e4041250ffea0a6d58010da1e">bg</a> b, <a class="el" href="classclutchlog_1_1fmt.html#a932f47b78fb7b10590d5613a1c4eab89">typo</a> s, <a class="el" href="classclutchlog_1_1fmt.html#a4662a3ec3577c6a575a2c734636ed8a0">fg</a> f=fg::none)</td></tr>
<tr class="separator:a65856874070ec0865b3a5b9aeb0e4f3d"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:a99b3a05ddf6fa341cee6cb1e5dffc159"><td class="memItemLeft" align="right" valign="top"><a id="a99b3a05ddf6fa341cee6cb1e5dffc159"></a>
&#160;</td><td class="memItemRight" valign="bottom"><b>fmt</b> (<a class="el" href="classclutchlog_1_1fmt.html#a932f47b78fb7b10590d5613a1c4eab89">typo</a> s, <a class="el" href="classclutchlog_1_1fmt.html#a4662a3ec3577c6a575a2c734636ed8a0">fg</a> f=fg::none, <a class="el" href="classclutchlog_1_1fmt.html#a1cf3e27e4041250ffea0a6d58010da1e">bg</a> b=bg::none)</td></tr>
<tr class="separator:a99b3a05ddf6fa341cee6cb1e5dffc159"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:aeea73b0239bf73ebc8ee84c1e6d278e2"><td class="memItemLeft" align="right" valign="top"><a id="aeea73b0239bf73ebc8ee84c1e6d278e2"></a>
&#160;</td><td class="memItemRight" valign="bottom"><b>fmt</b> (<a class="el" href="classclutchlog_1_1fmt.html#a932f47b78fb7b10590d5613a1c4eab89">typo</a> s, <a class="el" href="classclutchlog_1_1fmt.html#a1cf3e27e4041250ffea0a6d58010da1e">bg</a> b, <a class="el" href="classclutchlog_1_1fmt.html#a4662a3ec3577c6a575a2c734636ed8a0">fg</a> f=fg::none)</td></tr>
<tr class="separator:aeea73b0239bf73ebc8ee84c1e6d278e2"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:ga6cc6126d113fc0647ed3acbf29cdc425"><td class="memItemLeft" align="right" valign="top">
&#160;</td><td class="memItemRight" valign="bottom"><b>fmt</b> (<a class="el" href="group__UseMacros.html#ga4662a3ec3577c6a575a2c734636ed8a0">fg</a> f, <a class="el" href="group__UseMacros.html#ga1cf3e27e4041250ffea0a6d58010da1e">bg</a> b=bg::none, <a class="el" href="group__UseMacros.html#ga932f47b78fb7b10590d5613a1c4eab89">typo</a> s=typo::none)</td></tr>
<tr class="separator:ga6cc6126d113fc0647ed3acbf29cdc425"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:gac69e6d3b7ddaec908c429ac61f354267"><td class="memItemLeft" align="right" valign="top">
&#160;</td><td class="memItemRight" valign="bottom"><b>fmt</b> (<a class="el" href="group__UseMacros.html#ga4662a3ec3577c6a575a2c734636ed8a0">fg</a> f, <a class="el" href="group__UseMacros.html#ga932f47b78fb7b10590d5613a1c4eab89">typo</a> s, <a class="el" href="group__UseMacros.html#ga1cf3e27e4041250ffea0a6d58010da1e">bg</a> b=bg::none)</td></tr>
<tr class="separator:gac69e6d3b7ddaec908c429ac61f354267"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:ga13453c0b5dbc19d9b510dcdc0352b443"><td class="memItemLeft" align="right" valign="top">
&#160;</td><td class="memItemRight" valign="bottom"><b>fmt</b> (<a class="el" href="group__UseMacros.html#ga1cf3e27e4041250ffea0a6d58010da1e">bg</a> b, <a class="el" href="group__UseMacros.html#ga4662a3ec3577c6a575a2c734636ed8a0">fg</a> f=fg::none, <a class="el" href="group__UseMacros.html#ga932f47b78fb7b10590d5613a1c4eab89">typo</a> s=typo::none)</td></tr>
<tr class="separator:ga13453c0b5dbc19d9b510dcdc0352b443"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:ga65856874070ec0865b3a5b9aeb0e4f3d"><td class="memItemLeft" align="right" valign="top">
&#160;</td><td class="memItemRight" valign="bottom"><b>fmt</b> (<a class="el" href="group__UseMacros.html#ga1cf3e27e4041250ffea0a6d58010da1e">bg</a> b, <a class="el" href="group__UseMacros.html#ga932f47b78fb7b10590d5613a1c4eab89">typo</a> s, <a class="el" href="group__UseMacros.html#ga4662a3ec3577c6a575a2c734636ed8a0">fg</a> f=fg::none)</td></tr>
<tr class="separator:ga65856874070ec0865b3a5b9aeb0e4f3d"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:ga99b3a05ddf6fa341cee6cb1e5dffc159"><td class="memItemLeft" align="right" valign="top">
&#160;</td><td class="memItemRight" valign="bottom"><b>fmt</b> (<a class="el" href="group__UseMacros.html#ga932f47b78fb7b10590d5613a1c4eab89">typo</a> s, <a class="el" href="group__UseMacros.html#ga4662a3ec3577c6a575a2c734636ed8a0">fg</a> f=fg::none, <a class="el" href="group__UseMacros.html#ga1cf3e27e4041250ffea0a6d58010da1e">bg</a> b=bg::none)</td></tr>
<tr class="separator:ga99b3a05ddf6fa341cee6cb1e5dffc159"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:gaeea73b0239bf73ebc8ee84c1e6d278e2"><td class="memItemLeft" align="right" valign="top">
&#160;</td><td class="memItemRight" valign="bottom"><b>fmt</b> (<a class="el" href="group__UseMacros.html#ga932f47b78fb7b10590d5613a1c4eab89">typo</a> s, <a class="el" href="group__UseMacros.html#ga1cf3e27e4041250ffea0a6d58010da1e">bg</a> b, <a class="el" href="group__UseMacros.html#ga4662a3ec3577c6a575a2c734636ed8a0">fg</a> f=fg::none)</td></tr>
<tr class="separator:gaeea73b0239bf73ebc8ee84c1e6d278e2"><td class="memSeparator" colspan="2">&#160;</td></tr>
</table><table class="memberdecls">
<tr class="heading"><td colspan="2"><h2 class="groupheader"><a name="pub-attribs"></a>
Public Attributes</h2></td></tr>
<tr class="memitem:a8307a848fcf9ed929435b3e1f2b53401"><td class="memItemLeft" align="right" valign="top"><a id="a8307a848fcf9ed929435b3e1f2b53401"></a>
enum <a class="el" href="classclutchlog_1_1fmt.html#a4662a3ec3577c6a575a2c734636ed8a0">clutchlog::fmt::fg</a>&#160;</td><td class="memItemRight" valign="bottom"><b>fore</b></td></tr>
<tr class="separator:a8307a848fcf9ed929435b3e1f2b53401"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:a86696b20e5b31c96ba592926efb324f3"><td class="memItemLeft" align="right" valign="top"><a id="a86696b20e5b31c96ba592926efb324f3"></a>
enum <a class="el" href="classclutchlog_1_1fmt.html#a1cf3e27e4041250ffea0a6d58010da1e">clutchlog::fmt::bg</a>&#160;</td><td class="memItemRight" valign="bottom"><b>back</b></td></tr>
<tr class="separator:a86696b20e5b31c96ba592926efb324f3"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:a2bb0fde65fcd264393e102314dd1610b"><td class="memItemLeft" align="right" valign="top"><a id="a2bb0fde65fcd264393e102314dd1610b"></a>
enum <a class="el" href="classclutchlog_1_1fmt.html#a932f47b78fb7b10590d5613a1c4eab89">clutchlog::fmt::typo</a>&#160;</td><td class="memItemRight" valign="bottom"><b>style</b></td></tr>
<tr class="separator:a2bb0fde65fcd264393e102314dd1610b"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:ga8307a848fcf9ed929435b3e1f2b53401"><td class="memItemLeft" align="right" valign="top">
enum <a class="el" href="group__UseMacros.html#ga4662a3ec3577c6a575a2c734636ed8a0">clutchlog::fmt::fg</a>&#160;</td><td class="memItemRight" valign="bottom"><b>fore</b></td></tr>
<tr class="separator:ga8307a848fcf9ed929435b3e1f2b53401"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:ga86696b20e5b31c96ba592926efb324f3"><td class="memItemLeft" align="right" valign="top">
enum <a class="el" href="group__UseMacros.html#ga1cf3e27e4041250ffea0a6d58010da1e">clutchlog::fmt::bg</a>&#160;</td><td class="memItemRight" valign="bottom"><b>back</b></td></tr>
<tr class="separator:ga86696b20e5b31c96ba592926efb324f3"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:ga2bb0fde65fcd264393e102314dd1610b"><td class="memItemLeft" align="right" valign="top">
enum <a class="el" href="group__UseMacros.html#ga932f47b78fb7b10590d5613a1c4eab89">clutchlog::fmt::typo</a>&#160;</td><td class="memItemRight" valign="bottom"><b>style</b></td></tr>
<tr class="separator:ga2bb0fde65fcd264393e102314dd1610b"><td class="memSeparator" colspan="2">&#160;</td></tr>
</table><table class="memberdecls">
<tr class="heading"><td colspan="2"><h2 class="groupheader"><a name="pro-methods"></a>
Protected Member Functions</h2></td></tr>
<tr class="memitem:a0b607e343b6813b99eafca1fdfec9cd0"><td class="memItemLeft" align="right" valign="top"><a id="a0b607e343b6813b99eafca1fdfec9cd0"></a>
std::ostream &amp;&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classclutchlog_1_1fmt.html#a0b607e343b6813b99eafca1fdfec9cd0">print_on</a> (std::ostream &amp;os) const</td></tr>
<tr class="memdesc:a0b607e343b6813b99eafca1fdfec9cd0"><td class="mdescLeft">&#160;</td><td class="mdescRight">Print the currently encoded format escape code on the given output stream. <br /></td></tr>
<tr class="separator:a0b607e343b6813b99eafca1fdfec9cd0"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:ga0b607e343b6813b99eafca1fdfec9cd0"><td class="memItemLeft" align="right" valign="top">
std::ostream &amp;&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="group__UseMacros.html#ga0b607e343b6813b99eafca1fdfec9cd0">print_on</a> (std::ostream &amp;os) const</td></tr>
<tr class="memdesc:ga0b607e343b6813b99eafca1fdfec9cd0"><td class="mdescLeft">&#160;</td><td class="mdescRight">Print the currently encoded format escape code on the given output stream. <br /></td></tr>
<tr class="separator:ga0b607e343b6813b99eafca1fdfec9cd0"><td class="memSeparator" colspan="2">&#160;</td></tr>
</table><table class="memberdecls">
<tr class="heading"><td colspan="2"><h2 class="groupheader"><a name="friends"></a>
Friends</h2></td></tr>
<tr class="memitem:a96849ba427feac3a2eeaa1165e3845da"><td class="memItemLeft" align="right" valign="top">std::ostream &amp;&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classclutchlog_1_1fmt.html#a96849ba427feac3a2eeaa1165e3845da">operator&lt;&lt;</a> (std::ostream &amp;os, const <a class="el" href="classclutchlog_1_1fmt.html">fmt</a> &amp;<a class="el" href="classclutchlog_1_1fmt.html">fmt</a>)</td></tr>
<tr class="memdesc:a96849ba427feac3a2eeaa1165e3845da"><td class="mdescLeft">&#160;</td><td class="mdescRight">Output stream overload. <a href="classclutchlog_1_1fmt.html#a96849ba427feac3a2eeaa1165e3845da">More...</a><br /></td></tr>
<tr class="separator:a96849ba427feac3a2eeaa1165e3845da"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:ga96849ba427feac3a2eeaa1165e3845da"><td class="memItemLeft" align="right" valign="top">std::ostream &amp;&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="group__UseMacros.html#ga96849ba427feac3a2eeaa1165e3845da">operator&lt;&lt;</a> (std::ostream &amp;os, const <a class="el" href="classclutchlog_1_1fmt.html">fmt</a> &amp;<a class="el" href="classclutchlog_1_1fmt.html">fmt</a>)</td></tr>
<tr class="memdesc:ga96849ba427feac3a2eeaa1165e3845da"><td class="mdescLeft">&#160;</td><td class="mdescRight">Output stream overload. <a href="group__UseMacros.html#ga96849ba427feac3a2eeaa1165e3845da">More...</a><br /></td></tr>
<tr class="separator:ga96849ba427feac3a2eeaa1165e3845da"><td class="memSeparator" colspan="2">&#160;</td></tr>
</table>
<a name="details" id="details"></a><h2 class="groupheader">Detailed Description</h2>
<div class="textblock"><p>Color and style formatter for ANSI terminal escape sequences. </p>
<dl class="section note"><dt>Note</dt><dd>All styles may not be supported by a given terminal/operating system. </dd></dl>
</div><h2 class="groupheader">Member Function Documentation</h2>
<a id="afeaedd18298498d1dcfcc15f5f17ac3c"></a>
<h2 class="memtitle"><span class="permalink"><a href="#afeaedd18298498d1dcfcc15f5f17ac3c">&#9670;&nbsp;</a></span>operator()()</h2>
<div class="memitem">
<div class="memproto">
<table class="mlabels">
<tr>
<td class="mlabels-left">
<table class="memname">
<tr>
<td class="memname">std::string clutchlog::fmt::operator() </td>
<td>(</td>
<td class="paramtype">const std::string &amp;&#160;</td>
<td class="paramname"><em>msg</em></td><td>)</td>
<td> const</td>
</tr>
</table>
</td>
<td class="mlabels-right">
<span class="mlabels"><span class="mlabel">inline</span></span> </td>
</tr>
</table>
</div><div class="memdoc">
<p>Format the given string with the currently encoded format. </p>
<p>Allow to use a formatter as a function: </p><div class="fragment"><div class="line"><a class="code" href="classclutchlog_1_1fmt.html">clutchlog::fmt</a> error(clutchlog::fmt::fg::red, clutchlog::fmt::typo::bold);</div>
<div class="line">std::cout &lt;&lt; error(<span class="stringliteral">&quot;ERROR&quot;</span>) &lt;&lt; std::endl;</div>
</div><!-- fragment --><dl class="section note"><dt>Note</dt><dd>A formatter called this way WILL output a reset escape code at the end. </dd></dl>
</div>
</div>
<h2 class="groupheader">Friends And Related Function Documentation</h2>
<a id="a96849ba427feac3a2eeaa1165e3845da"></a>
<h2 class="memtitle"><span class="permalink"><a href="#a96849ba427feac3a2eeaa1165e3845da">&#9670;&nbsp;</a></span>operator&lt;&lt;</h2>
<div class="memitem">
<div class="memproto">
<table class="mlabels">
<tr>
<td class="mlabels-left">
<table class="memname">
<tr>
<td class="memname">std::ostream&amp; operator&lt;&lt; </td>
<td>(</td>
<td class="paramtype">std::ostream &amp;&#160;</td>
<td class="paramname"><em>os</em>, </td>
</tr>
<tr>
<td class="paramkey"></td>
<td></td>
<td class="paramtype">const <a class="el" href="classclutchlog_1_1fmt.html">fmt</a> &amp;&#160;</td>
<td class="paramname"><em>fmt</em>&#160;</td>
</tr>
<tr>
<td></td>
<td>)</td>
<td></td><td></td>
</tr>
</table>
</td>
<td class="mlabels-right">
<span class="mlabels"><span class="mlabel">friend</span></span> </td>
</tr>
</table>
</div><div class="memdoc">
<p>Output stream overload. </p>
<p>Allow to use a formatter as a tag within a stream: </p><div class="fragment"><div class="line"><a class="code" href="classclutchlog_1_1fmt.html">clutchlog::fmt</a> end(clutchlog::fmt::typo::reset);</div>
<div class="line"><a class="code" href="classclutchlog_1_1fmt.html">clutchlog::fmt</a> error(clutchlog::fmt::fg::red, clutchlog::fmt::typo::bold);</div>
<div class="line">std::cout &lt;&lt; error &lt;&lt; <span class="stringliteral">&quot;ERROR&quot;</span> &lt;&lt; end &lt;&lt; std::endl;</div>
</div><!-- fragment --><dl class="section note"><dt>Note</dt><dd>An formatter called this way will NOT output a reset escape code. </dd></dl>
</div>
</div>
<hr/>The documentation for this class was generated from the following file:<ul>
</div><hr/>The documentation for this class was generated from the following file:<ul>
<li>clutchlog/<a class="el" href="clutchlog_8h_source.html">clutchlog.h</a></li>
</ul>
</div><!-- contents -->
<div class="ttc" id="aclassclutchlog_1_1fmt_html"><div class="ttname"><a href="classclutchlog_1_1fmt.html">clutchlog::fmt</a></div><div class="ttdoc">Color and style formatter for ANSI terminal escape sequences.</div><div class="ttdef"><b>Definition:</b> clutchlog.h:229</div></div>
<!-- start footer part -->
<hr class="footer"/><address class="footer"><small>
Generated by &#160;<a href="http://www.doxygen.org/index.html">

View file

@ -126,30 +126,10 @@ Macros</h2></td></tr>
#define&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="clutchlog_8h.html#a5c126962abcc7a40e504a6fc3abdfcc4">WITH_CLUTCHLOG</a></td></tr>
<tr class="memdesc:a5c126962abcc7a40e504a6fc3abdfcc4"><td class="mdescLeft">&#160;</td><td class="mdescRight">Actually enable clutchlog features. <br /></td></tr>
<tr class="separator:a5c126962abcc7a40e504a6fc3abdfcc4"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:ga524c16f280d92ee8ab683162c9ce01fa"><td class="memItemLeft" align="right" valign="top">
#define&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="group__DefaultConfigMacros.html#ga524c16f280d92ee8ab683162c9ce01fa">CLUTCHLOG_DEFAULT_FORMAT</a>&#160;&#160;&#160;&quot;{level_letter} {msg}\t\t\t\t\t{func} @ {file}:{line}\n&quot;</td></tr>
<tr class="memdesc:ga524c16f280d92ee8ab683162c9ce01fa"><td class="mdescLeft">&#160;</td><td class="mdescRight">Default format of the messages. <br /></td></tr>
<tr class="separator:ga524c16f280d92ee8ab683162c9ce01fa"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:ga27b613c6727857a7cbcd0165d862034e"><td class="memItemLeft" align="right" valign="top">
#define&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="group__DefaultConfigMacros.html#ga27b613c6727857a7cbcd0165d862034e">CLUTCHDUMP_DEFAULT_FORMAT</a>&#160;&#160;&#160;&quot;# {level} in {func} @ {file}:{line}&quot;</td></tr>
<tr class="memdesc:ga27b613c6727857a7cbcd0165d862034e"><td class="mdescLeft">&#160;</td><td class="mdescRight">Default format of the comment line in file dump. <br /></td></tr>
<tr class="separator:ga27b613c6727857a7cbcd0165d862034e"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:ga54d29e956575e1c731eab5406135c5df"><td class="memItemLeft" align="right" valign="top">
#define&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="group__DefaultConfigMacros.html#ga54d29e956575e1c731eab5406135c5df">CLUTCHDUMP_DEFAULT_SEP</a>&#160;&#160;&#160;&quot;\n&quot;</td></tr>
<tr class="memdesc:ga54d29e956575e1c731eab5406135c5df"><td class="mdescLeft">&#160;</td><td class="mdescRight">Default item separator for dump. <br /></td></tr>
<tr class="separator:ga54d29e956575e1c731eab5406135c5df"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:ga45c4c964fad4ad1641d5c9c28c4645b9"><td class="memItemLeft" align="right" valign="top">
#define&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="group__DefaultConfigMacros.html#ga45c4c964fad4ad1641d5c9c28c4645b9">CLUTCHLOG_DEFAULT_DEPTH_MARK</a>&#160;&#160;&#160;&quot;&gt;&quot;</td></tr>
<tr class="memdesc:ga45c4c964fad4ad1641d5c9c28c4645b9"><td class="mdescLeft">&#160;</td><td class="mdescRight">Default mark for stack depth. <br /></td></tr>
<tr class="separator:ga45c4c964fad4ad1641d5c9c28c4645b9"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:ga8564be479b948ee3052b61783c66d415"><td class="memItemLeft" align="right" valign="top">
#define&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="group__DefaultConfigMacros.html#ga8564be479b948ee3052b61783c66d415">CLUTCHLOG_DEFAULT_DEPTH_BUILT_NODEBUG</a>&#160;&#160;&#160;clutchlog::level::progress</td></tr>
<tr class="memdesc:ga8564be479b948ee3052b61783c66d415"><td class="mdescLeft">&#160;</td><td class="mdescRight">Default level over which calls to the logger are optimized out when NDEBUG is defined. <br /></td></tr>
<tr class="separator:ga8564be479b948ee3052b61783c66d415"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:ga98f30d814d4913a8a7c93a8793f49adf"><td class="memItemLeft" align="right" valign="top">
#define&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="group__DefaultConfigMacros.html#ga98f30d814d4913a8a7c93a8793f49adf">CLUTCHLOG_STRIP_CALLS</a>&#160;&#160;&#160;5</td></tr>
<tr class="memdesc:ga98f30d814d4913a8a7c93a8793f49adf"><td class="mdescLeft">&#160;</td><td class="mdescRight">Number of call stack levels to remove from depth display by default. <br /></td></tr>
<tr class="separator:ga98f30d814d4913a8a7c93a8793f49adf"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:gae8911119d726a43b77f5781cb5a72813"><td class="memItemLeft" align="right" valign="top">
#define&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="group__UseMacros.html#gae8911119d726a43b77f5781cb5a72813">CLUTCHLOC</a>&#160;&#160;&#160;__FILE__, __FUNCTION__, __LINE__</td></tr>
<tr class="memdesc:gae8911119d726a43b77f5781cb5a72813"><td class="mdescLeft">&#160;</td><td class="mdescRight">Handy shortcuts to location. <br /></td></tr>
@ -166,6 +146,26 @@ Macros</h2></td></tr>
<tr class="memitem:gaaf2e85e1153e6c88b458dd49e3c37c73"><td class="memItemLeft" align="right" valign="top">#define&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="group__UseMacros.html#gaaf2e85e1153e6c88b458dd49e3c37c73">CLUTCHCODE</a>(LEVEL, ...)</td></tr>
<tr class="memdesc:gaaf2e85e1153e6c88b458dd49e3c37c73"><td class="mdescLeft">&#160;</td><td class="mdescRight">Run any code if the scope matches. <a href="group__UseMacros.html#gaaf2e85e1153e6c88b458dd49e3c37c73">More...</a><br /></td></tr>
<tr class="separator:gaaf2e85e1153e6c88b458dd49e3c37c73"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:ga524c16f280d92ee8ab683162c9ce01fa"><td class="memItemLeft" align="right" valign="top">
#define&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="group__UseMacros.html#ga524c16f280d92ee8ab683162c9ce01fa">CLUTCHLOG_DEFAULT_FORMAT</a>&#160;&#160;&#160;&quot;{level_letter} {msg}\t\t\t\t\t{func} @ {file}:{line}\n&quot;</td></tr>
<tr class="memdesc:ga524c16f280d92ee8ab683162c9ce01fa"><td class="mdescLeft">&#160;</td><td class="mdescRight">Default format of the messages. <br /></td></tr>
<tr class="separator:ga524c16f280d92ee8ab683162c9ce01fa"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:ga27b613c6727857a7cbcd0165d862034e"><td class="memItemLeft" align="right" valign="top">
#define&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="group__UseMacros.html#ga27b613c6727857a7cbcd0165d862034e">CLUTCHDUMP_DEFAULT_FORMAT</a>&#160;&#160;&#160;&quot;# {level} in {func} @ {file}:{line}&quot;</td></tr>
<tr class="memdesc:ga27b613c6727857a7cbcd0165d862034e"><td class="mdescLeft">&#160;</td><td class="mdescRight">Default format of the comment line in file dump. <br /></td></tr>
<tr class="separator:ga27b613c6727857a7cbcd0165d862034e"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:ga54d29e956575e1c731eab5406135c5df"><td class="memItemLeft" align="right" valign="top">
#define&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="group__UseMacros.html#ga54d29e956575e1c731eab5406135c5df">CLUTCHDUMP_DEFAULT_SEP</a>&#160;&#160;&#160;&quot;\n&quot;</td></tr>
<tr class="memdesc:ga54d29e956575e1c731eab5406135c5df"><td class="mdescLeft">&#160;</td><td class="mdescRight">Default item separator for dump. <br /></td></tr>
<tr class="separator:ga54d29e956575e1c731eab5406135c5df"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:ga45c4c964fad4ad1641d5c9c28c4645b9"><td class="memItemLeft" align="right" valign="top">
#define&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="group__UseMacros.html#ga45c4c964fad4ad1641d5c9c28c4645b9">CLUTCHLOG_DEFAULT_DEPTH_MARK</a>&#160;&#160;&#160;&quot;&gt;&quot;</td></tr>
<tr class="memdesc:ga45c4c964fad4ad1641d5c9c28c4645b9"><td class="mdescLeft">&#160;</td><td class="mdescRight">Default mark for stack depth. <br /></td></tr>
<tr class="separator:ga45c4c964fad4ad1641d5c9c28c4645b9"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:ga98f30d814d4913a8a7c93a8793f49adf"><td class="memItemLeft" align="right" valign="top">
#define&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="group__UseMacros.html#ga98f30d814d4913a8a7c93a8793f49adf">CLUTCHLOG_STRIP_CALLS</a>&#160;&#160;&#160;5</td></tr>
<tr class="memdesc:ga98f30d814d4913a8a7c93a8793f49adf"><td class="mdescLeft">&#160;</td><td class="mdescRight">Number of call stack levels to remove from depth display by default. <br /></td></tr>
<tr class="separator:ga98f30d814d4913a8a7c93a8793f49adf"><td class="memSeparator" colspan="2">&#160;</td></tr>
</table>
</div><!-- contents -->
<!-- start footer part -->

File diff suppressed because it is too large Load diff

View file

@ -66,7 +66,7 @@ $(function() {
</div>
</div><!-- top -->
<div class="contents">
<h3>tests &rarr; clutchlog Relation</h3><table class="dirtab"><tr class="dirtab"><th class="dirtab">File in tests</th><th class="dirtab">Includes file in clutchlog</th></tr><tr class="dirtab"><td class="dirtab"><b>t-assert.cpp</b></td><td class="dirtab"><a class="el" href="clutchlog_8h.html">clutchlog.h</a></td></tr><tr class="dirtab"><td class="dirtab"><b>t-color.cpp</b></td><td class="dirtab"><a class="el" href="clutchlog_8h.html">clutchlog.h</a></td></tr><tr class="dirtab"><td class="dirtab"><b>t-demo.cpp</b></td><td class="dirtab"><a class="el" href="clutchlog_8h.html">clutchlog.h</a></td></tr><tr class="dirtab"><td class="dirtab"><b>t-dump.cpp</b></td><td class="dirtab"><a class="el" href="clutchlog_8h.html">clutchlog.h</a></td></tr><tr class="dirtab"><td class="dirtab"><b>t-log.cpp</b></td><td class="dirtab"><a class="el" href="clutchlog_8h.html">clutchlog.h</a></td></tr></table></div><!-- contents -->
<h3>tests &rarr; clutchlog Relation</h3><table class="dirtab"><tr class="dirtab"><th class="dirtab">File in tests</th><th class="dirtab">Includes file in clutchlog</th></tr><tr class="dirtab"><td class="dirtab"><b>t-assert.cpp</b></td><td class="dirtab"><a class="el" href="clutchlog_8h.html">clutchlog.h</a></td></tr><tr class="dirtab"><td class="dirtab"><b>t-color.cpp</b></td><td class="dirtab"><a class="el" href="clutchlog_8h.html">clutchlog.h</a></td></tr><tr class="dirtab"><td class="dirtab"><b>t-demo.cpp</b></td><td class="dirtab"><a class="el" href="clutchlog_8h.html">clutchlog.h</a></td></tr><tr class="dirtab"><td class="dirtab"><b>t-dump.cpp</b></td><td class="dirtab"><a class="el" href="clutchlog_8h.html">clutchlog.h</a></td></tr><tr class="dirtab"><td class="dirtab"><b>t-log.cpp</b></td><td class="dirtab"><a class="el" href="clutchlog_8h.html">clutchlog.h</a></td></tr><tr class="dirtab"><td class="dirtab"><b>t-one-line-if.cpp</b></td><td class="dirtab"><a class="el" href="clutchlog_8h.html">clutchlog.h</a></td></tr></table></div><!-- contents -->
<!-- start footer part -->
<hr class="footer"/><address class="footer"><small>
Generated by &#160;<a href="http://www.doxygen.org/index.html">

View file

@ -77,7 +77,7 @@ Directory dependency graph for tests:</div>
<map name="dir__59425e443f801f1f2fd8bbe4959a3ccf__dep" id="dir__59425e443f801f1f2fd8bbe4959a3ccf__dep">
<area shape="rect" href="dir_59425e443f801f1f2fd8bbe4959a3ccf.html" title="tests" alt="" coords="7,5,79,53"/>
<area shape="rect" href="dir_c318bd5cf14aaa5601e6029e0b5b4048.html" title="clutchlog" alt="" coords="5,101,80,149"/>
<area shape="rect" href="dir_000050_000000.html" title="5" alt="" coords="47,76,55,90"/>
<area shape="rect" href="dir_000050_000000.html" title="6" alt="" coords="47,76,55,90"/>
</map>
</div>
</div><!-- contents -->

View file

@ -1,5 +1,5 @@
<map id="tests" name="tests">
<area shape="rect" id="node1" href="dir_59425e443f801f1f2fd8bbe4959a3ccf.html" title="tests" alt="" coords="7,5,79,53"/>
<area shape="rect" id="node2" href="dir_c318bd5cf14aaa5601e6029e0b5b4048.html" title="clutchlog" alt="" coords="5,101,80,149"/>
<area shape="rect" id="edge1-headlabel" href="dir_000050_000000.html" title="5" alt="" coords="47,76,55,90"/>
<area shape="rect" id="edge1-headlabel" href="dir_000050_000000.html" title="6" alt="" coords="47,76,55,90"/>
</map>

View file

@ -1 +1 @@
d4d81e1e042ac800c009c85756147e76
34c2c7768310b6f121c9272e1093428c

Binary file not shown.

Before

Width:  |  Height:  |  Size: 2.4 KiB

After

Width:  |  Height:  |  Size: 2.5 KiB

Before After
Before After

View file

@ -66,105 +66,105 @@ $(function() {
<h3><a id="index_b"></a>- b -</h3><ul>
<li>bg
: <a class="el" href="classclutchlog_1_1fmt.html#a1cf3e27e4041250ffea0a6d58010da1e">clutchlog::fmt</a>
: <a class="el" href="group__UseMacros.html#ga1cf3e27e4041250ffea0a6d58010da1e">clutchlog::fmt</a>
</li>
</ul>
<h3><a id="index_d"></a>- d -</h3><ul>
<li>dump()
: <a class="el" href="classclutchlog.html#ae7edb2e14f3d55b201b834255aa4bce9">clutchlog</a>
: <a class="el" href="group__UseMacros.html#ga63308e8deae3cfec6801318203494143">clutchlog</a>
</li>
</ul>
<h3><a id="index_f"></a>- f -</h3><ul>
<li>fg
: <a class="el" href="classclutchlog_1_1fmt.html#a4662a3ec3577c6a575a2c734636ed8a0">clutchlog::fmt</a>
: <a class="el" href="group__UseMacros.html#ga4662a3ec3577c6a575a2c734636ed8a0">clutchlog::fmt</a>
</li>
<li>file()
: <a class="el" href="classclutchlog.html#a10064493c22f5c03b502a42d814c5c5c">clutchlog</a>
: <a class="el" href="group__UseMacros.html#ga10064493c22f5c03b502a42d814c5c5c">clutchlog</a>
</li>
<li>fmt()
: <a class="el" href="classclutchlog_1_1fmt.html#a407506bc02ed3f91d88b3df630e54959">clutchlog::fmt</a>
: <a class="el" href="group__UseMacros.html#ga407506bc02ed3f91d88b3df630e54959">clutchlog::fmt</a>
</li>
<li>format()
: <a class="el" href="classclutchlog.html#a656c277e074b64728cca871f2b484d1c">clutchlog</a>
: <a class="el" href="group__UseMacros.html#ga656c277e074b64728cca871f2b484d1c">clutchlog</a>
</li>
<li>format_comment()
: <a class="el" href="classclutchlog.html#aa8d0a569ed3623ce36c5e567ec2d1ad5">clutchlog</a>
: <a class="el" href="group__UseMacros.html#gaa8d0a569ed3623ce36c5e567ec2d1ad5">clutchlog</a>
</li>
<li>func()
: <a class="el" href="classclutchlog.html#ad32b5a0274dc03ee0004f67ba58b2447">clutchlog</a>
: <a class="el" href="group__UseMacros.html#gad32b5a0274dc03ee0004f67ba58b2447">clutchlog</a>
</li>
</ul>
<h3><a id="index_l"></a>- l -</h3><ul>
<li>level
: <a class="el" href="classclutchlog.html#a10fd25a1b51c8c95bd6d876ce1b4b928">clutchlog</a>
: <a class="el" href="group__UseMacros.html#ga10fd25a1b51c8c95bd6d876ce1b4b928">clutchlog</a>
</li>
<li>level_of()
: <a class="el" href="classclutchlog.html#acebed8c9df9204f22bf8488e62e1cedd">clutchlog</a>
: <a class="el" href="group__UseMacros.html#gacebed8c9df9204f22bf8488e62e1cedd">clutchlog</a>
</li>
<li>line()
: <a class="el" href="classclutchlog.html#aa26c6b81ebaeb9e9daa3457e3a3d17c9">clutchlog</a>
: <a class="el" href="group__UseMacros.html#gaa26c6b81ebaeb9e9daa3457e3a3d17c9">clutchlog</a>
</li>
<li>locate()
: <a class="el" href="classclutchlog.html#a4ebdfcded6c56262676bf6926d63fc96">clutchlog</a>
: <a class="el" href="group__UseMacros.html#ga4ebdfcded6c56262676bf6926d63fc96">clutchlog</a>
</li>
<li>location()
: <a class="el" href="classclutchlog.html#a6666106b9e5c239b6ae5e0d1091648e3">clutchlog</a>
: <a class="el" href="group__UseMacros.html#ga6666106b9e5c239b6ae5e0d1091648e3">clutchlog</a>
</li>
<li>log()
: <a class="el" href="classclutchlog.html#a23dbb98f0d3c5cc21c232cde16cf317a">clutchlog</a>
: <a class="el" href="group__UseMacros.html#ga23dbb98f0d3c5cc21c232cde16cf317a">clutchlog</a>
</li>
<li>logger()
: <a class="el" href="classclutchlog.html#acfaceb77da01503b432644a3efaee4fa">clutchlog</a>
: <a class="el" href="group__UseMacros.html#gacfaceb77da01503b432644a3efaee4fa">clutchlog</a>
</li>
</ul>
<h3><a id="index_o"></a>- o -</h3><ul>
<li>operator()()
: <a class="el" href="classclutchlog_1_1fmt.html#afeaedd18298498d1dcfcc15f5f17ac3c">clutchlog::fmt</a>
: <a class="el" href="group__UseMacros.html#gafeaedd18298498d1dcfcc15f5f17ac3c">clutchlog::fmt</a>
</li>
<li>operator&lt;&lt;
: <a class="el" href="classclutchlog_1_1fmt.html#a96849ba427feac3a2eeaa1165e3845da">clutchlog::fmt</a>
: <a class="el" href="group__UseMacros.html#ga96849ba427feac3a2eeaa1165e3845da">clutchlog::fmt</a>
</li>
<li>out()
: <a class="el" href="classclutchlog.html#a7fd7c7bd3668c537061c314a619a336d">clutchlog</a>
: <a class="el" href="group__UseMacros.html#ga7fd7c7bd3668c537061c314a619a336d">clutchlog</a>
</li>
</ul>
<h3><a id="index_p"></a>- p -</h3><ul>
<li>print_on()
: <a class="el" href="classclutchlog_1_1fmt.html#a0b607e343b6813b99eafca1fdfec9cd0">clutchlog::fmt</a>
: <a class="el" href="group__UseMacros.html#ga0b607e343b6813b99eafca1fdfec9cd0">clutchlog::fmt</a>
</li>
</ul>
<h3><a id="index_r"></a>- r -</h3><ul>
<li>replace()
: <a class="el" href="classclutchlog.html#a972f895c70edc335f3018a2c8971d59e">clutchlog</a>
: <a class="el" href="group__UseMacros.html#ga972f895c70edc335f3018a2c8971d59e">clutchlog</a>
</li>
</ul>
<h3><a id="index_s"></a>- s -</h3><ul>
<li>style()
: <a class="el" href="classclutchlog.html#ac3ec55057b9c734b66f169bf43dbd591">clutchlog</a>
: <a class="el" href="group__UseMacros.html#gac3ec55057b9c734b66f169bf43dbd591">clutchlog</a>
</li>
</ul>
<h3><a id="index_t"></a>- t -</h3><ul>
<li>threshold()
: <a class="el" href="classclutchlog.html#a3cb0e4f43a4cadf1966001ad7c9861f4">clutchlog</a>
: <a class="el" href="group__UseMacros.html#ga3cb0e4f43a4cadf1966001ad7c9861f4">clutchlog</a>
</li>
<li>typo
: <a class="el" href="classclutchlog_1_1fmt.html#a932f47b78fb7b10590d5613a1c4eab89">clutchlog::fmt</a>
: <a class="el" href="group__UseMacros.html#ga932f47b78fb7b10590d5613a1c4eab89">clutchlog::fmt</a>
</li>
</ul>
</div><!-- contents -->

View file

@ -64,16 +64,16 @@ $(function() {
<div class="contents">
&#160;<ul>
<li>bg
: <a class="el" href="classclutchlog_1_1fmt.html#a1cf3e27e4041250ffea0a6d58010da1e">clutchlog::fmt</a>
: <a class="el" href="group__UseMacros.html#ga1cf3e27e4041250ffea0a6d58010da1e">clutchlog::fmt</a>
</li>
<li>fg
: <a class="el" href="classclutchlog_1_1fmt.html#a4662a3ec3577c6a575a2c734636ed8a0">clutchlog::fmt</a>
: <a class="el" href="group__UseMacros.html#ga4662a3ec3577c6a575a2c734636ed8a0">clutchlog::fmt</a>
</li>
<li>level
: <a class="el" href="classclutchlog.html#a10fd25a1b51c8c95bd6d876ce1b4b928">clutchlog</a>
: <a class="el" href="group__UseMacros.html#ga10fd25a1b51c8c95bd6d876ce1b4b928">clutchlog</a>
</li>
<li>typo
: <a class="el" href="classclutchlog_1_1fmt.html#a932f47b78fb7b10590d5613a1c4eab89">clutchlog::fmt</a>
: <a class="el" href="group__UseMacros.html#ga932f47b78fb7b10590d5613a1c4eab89">clutchlog::fmt</a>
</li>
</ul>
</div><!-- contents -->

View file

@ -64,58 +64,58 @@ $(function() {
<div class="contents">
&#160;<ul>
<li>dump()
: <a class="el" href="classclutchlog.html#ae7edb2e14f3d55b201b834255aa4bce9">clutchlog</a>
: <a class="el" href="group__UseMacros.html#ga63308e8deae3cfec6801318203494143">clutchlog</a>
</li>
<li>file()
: <a class="el" href="classclutchlog.html#a10064493c22f5c03b502a42d814c5c5c">clutchlog</a>
: <a class="el" href="group__UseMacros.html#ga10064493c22f5c03b502a42d814c5c5c">clutchlog</a>
</li>
<li>fmt()
: <a class="el" href="classclutchlog_1_1fmt.html#a407506bc02ed3f91d88b3df630e54959">clutchlog::fmt</a>
: <a class="el" href="group__UseMacros.html#ga407506bc02ed3f91d88b3df630e54959">clutchlog::fmt</a>
</li>
<li>format()
: <a class="el" href="classclutchlog.html#af1219599b1361562c802779572aa669f">clutchlog</a>
: <a class="el" href="group__UseMacros.html#gaf1219599b1361562c802779572aa669f">clutchlog</a>
</li>
<li>format_comment()
: <a class="el" href="classclutchlog.html#a2144abe4ec6f630126b6490908b5f924">clutchlog</a>
: <a class="el" href="group__UseMacros.html#ga2144abe4ec6f630126b6490908b5f924">clutchlog</a>
</li>
<li>func()
: <a class="el" href="classclutchlog.html#ad32b5a0274dc03ee0004f67ba58b2447">clutchlog</a>
: <a class="el" href="group__UseMacros.html#gad32b5a0274dc03ee0004f67ba58b2447">clutchlog</a>
</li>
<li>level_of()
: <a class="el" href="classclutchlog.html#acebed8c9df9204f22bf8488e62e1cedd">clutchlog</a>
: <a class="el" href="group__UseMacros.html#gacebed8c9df9204f22bf8488e62e1cedd">clutchlog</a>
</li>
<li>line()
: <a class="el" href="classclutchlog.html#aa26c6b81ebaeb9e9daa3457e3a3d17c9">clutchlog</a>
: <a class="el" href="group__UseMacros.html#gaa26c6b81ebaeb9e9daa3457e3a3d17c9">clutchlog</a>
</li>
<li>locate()
: <a class="el" href="classclutchlog.html#a4ebdfcded6c56262676bf6926d63fc96">clutchlog</a>
: <a class="el" href="group__UseMacros.html#ga4ebdfcded6c56262676bf6926d63fc96">clutchlog</a>
</li>
<li>location()
: <a class="el" href="classclutchlog.html#a6666106b9e5c239b6ae5e0d1091648e3">clutchlog</a>
: <a class="el" href="group__UseMacros.html#ga6666106b9e5c239b6ae5e0d1091648e3">clutchlog</a>
</li>
<li>log()
: <a class="el" href="classclutchlog.html#a23dbb98f0d3c5cc21c232cde16cf317a">clutchlog</a>
: <a class="el" href="group__UseMacros.html#ga23dbb98f0d3c5cc21c232cde16cf317a">clutchlog</a>
</li>
<li>logger()
: <a class="el" href="classclutchlog.html#acfaceb77da01503b432644a3efaee4fa">clutchlog</a>
: <a class="el" href="group__UseMacros.html#gacfaceb77da01503b432644a3efaee4fa">clutchlog</a>
</li>
<li>operator()()
: <a class="el" href="classclutchlog_1_1fmt.html#afeaedd18298498d1dcfcc15f5f17ac3c">clutchlog::fmt</a>
: <a class="el" href="group__UseMacros.html#gafeaedd18298498d1dcfcc15f5f17ac3c">clutchlog::fmt</a>
</li>
<li>out()
: <a class="el" href="classclutchlog.html#a7fd7c7bd3668c537061c314a619a336d">clutchlog</a>
: <a class="el" href="group__UseMacros.html#ga7fd7c7bd3668c537061c314a619a336d">clutchlog</a>
</li>
<li>print_on()
: <a class="el" href="classclutchlog_1_1fmt.html#a0b607e343b6813b99eafca1fdfec9cd0">clutchlog::fmt</a>
: <a class="el" href="group__UseMacros.html#ga0b607e343b6813b99eafca1fdfec9cd0">clutchlog::fmt</a>
</li>
<li>replace()
: <a class="el" href="classclutchlog.html#a972f895c70edc335f3018a2c8971d59e">clutchlog</a>
: <a class="el" href="group__UseMacros.html#ga972f895c70edc335f3018a2c8971d59e">clutchlog</a>
</li>
<li>style()
: <a class="el" href="classclutchlog.html#ac3ec55057b9c734b66f169bf43dbd591">clutchlog</a>
: <a class="el" href="group__UseMacros.html#gac3ec55057b9c734b66f169bf43dbd591">clutchlog</a>
</li>
<li>threshold()
: <a class="el" href="classclutchlog.html#a3cb0e4f43a4cadf1966001ad7c9861f4">clutchlog</a>
: <a class="el" href="group__UseMacros.html#ga3cb0e4f43a4cadf1966001ad7c9861f4">clutchlog</a>
</li>
</ul>
</div><!-- contents -->

View file

@ -64,7 +64,7 @@ $(function() {
<div class="contents">
&#160;<ul>
<li>operator&lt;&lt;
: <a class="el" href="classclutchlog_1_1fmt.html#a96849ba427feac3a2eeaa1165e3845da">clutchlog::fmt</a>
: <a class="el" href="group__UseMacros.html#ga96849ba427feac3a2eeaa1165e3845da">clutchlog::fmt</a>
</li>
</ul>
</div><!-- contents -->

View file

@ -70,10 +70,10 @@ $(function() {
: <a class="el" href="group__UseMacros.html#ga572e3aa19d8b39e3ed0b9e91961104c2">clutchlog.h</a>
</li>
<li>CLUTCHDUMP_DEFAULT_FORMAT
: <a class="el" href="group__DefaultConfigMacros.html#ga27b613c6727857a7cbcd0165d862034e">clutchlog.h</a>
: <a class="el" href="group__UseMacros.html#ga27b613c6727857a7cbcd0165d862034e">clutchlog.h</a>
</li>
<li>CLUTCHDUMP_DEFAULT_SEP
: <a class="el" href="group__DefaultConfigMacros.html#ga54d29e956575e1c731eab5406135c5df">clutchlog.h</a>
: <a class="el" href="group__UseMacros.html#ga54d29e956575e1c731eab5406135c5df">clutchlog.h</a>
</li>
<li>CLUTCHFUNC
: <a class="el" href="group__UseMacros.html#ga9f77cee4f853e582262930c9c17f90ae">clutchlog.h</a>
@ -88,13 +88,13 @@ $(function() {
: <a class="el" href="group__DefaultConfigMacros.html#ga8564be479b948ee3052b61783c66d415">clutchlog.h</a>
</li>
<li>CLUTCHLOG_DEFAULT_DEPTH_MARK
: <a class="el" href="group__DefaultConfigMacros.html#ga45c4c964fad4ad1641d5c9c28c4645b9">clutchlog.h</a>
: <a class="el" href="group__UseMacros.html#ga45c4c964fad4ad1641d5c9c28c4645b9">clutchlog.h</a>
</li>
<li>CLUTCHLOG_DEFAULT_FORMAT
: <a class="el" href="group__DefaultConfigMacros.html#ga524c16f280d92ee8ab683162c9ce01fa">clutchlog.h</a>
: <a class="el" href="group__UseMacros.html#ga524c16f280d92ee8ab683162c9ce01fa">clutchlog.h</a>
</li>
<li>CLUTCHLOG_STRIP_CALLS
: <a class="el" href="group__DefaultConfigMacros.html#ga98f30d814d4913a8a7c93a8793f49adf">clutchlog.h</a>
: <a class="el" href="group__UseMacros.html#ga98f30d814d4913a8a7c93a8793f49adf">clutchlog.h</a>
</li>
<li>WITH_CLUTCHLOG
: <a class="el" href="clutchlog_8h.html#a5c126962abcc7a40e504a6fc3abdfcc4">clutchlog.h</a>

View file

@ -70,10 +70,10 @@ $(function() {
: <a class="el" href="group__UseMacros.html#ga572e3aa19d8b39e3ed0b9e91961104c2">clutchlog.h</a>
</li>
<li>CLUTCHDUMP_DEFAULT_FORMAT
: <a class="el" href="group__DefaultConfigMacros.html#ga27b613c6727857a7cbcd0165d862034e">clutchlog.h</a>
: <a class="el" href="group__UseMacros.html#ga27b613c6727857a7cbcd0165d862034e">clutchlog.h</a>
</li>
<li>CLUTCHDUMP_DEFAULT_SEP
: <a class="el" href="group__DefaultConfigMacros.html#ga54d29e956575e1c731eab5406135c5df">clutchlog.h</a>
: <a class="el" href="group__UseMacros.html#ga54d29e956575e1c731eab5406135c5df">clutchlog.h</a>
</li>
<li>CLUTCHFUNC
: <a class="el" href="group__UseMacros.html#ga9f77cee4f853e582262930c9c17f90ae">clutchlog.h</a>
@ -88,13 +88,13 @@ $(function() {
: <a class="el" href="group__DefaultConfigMacros.html#ga8564be479b948ee3052b61783c66d415">clutchlog.h</a>
</li>
<li>CLUTCHLOG_DEFAULT_DEPTH_MARK
: <a class="el" href="group__DefaultConfigMacros.html#ga45c4c964fad4ad1641d5c9c28c4645b9">clutchlog.h</a>
: <a class="el" href="group__UseMacros.html#ga45c4c964fad4ad1641d5c9c28c4645b9">clutchlog.h</a>
</li>
<li>CLUTCHLOG_DEFAULT_FORMAT
: <a class="el" href="group__DefaultConfigMacros.html#ga524c16f280d92ee8ab683162c9ce01fa">clutchlog.h</a>
: <a class="el" href="group__UseMacros.html#ga524c16f280d92ee8ab683162c9ce01fa">clutchlog.h</a>
</li>
<li>CLUTCHLOG_STRIP_CALLS
: <a class="el" href="group__DefaultConfigMacros.html#ga98f30d814d4913a8a7c93a8793f49adf">clutchlog.h</a>
: <a class="el" href="group__UseMacros.html#ga98f30d814d4913a8a7c93a8793f49adf">clutchlog.h</a>
</li>
<li>WITH_CLUTCHLOG
: <a class="el" href="clutchlog_8h.html#a5c126962abcc7a40e504a6fc3abdfcc4">clutchlog.h</a>

View file

@ -71,30 +71,10 @@ $(function() {
<table class="memberdecls">
<tr class="heading"><td colspan="2"><h2 class="groupheader"><a name="define-members"></a>
Macros</h2></td></tr>
<tr class="memitem:ga524c16f280d92ee8ab683162c9ce01fa"><td class="memItemLeft" align="right" valign="top"><a id="ga524c16f280d92ee8ab683162c9ce01fa"></a>
#define&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="group__DefaultConfigMacros.html#ga524c16f280d92ee8ab683162c9ce01fa">CLUTCHLOG_DEFAULT_FORMAT</a>&#160;&#160;&#160;&quot;{level_letter} {msg}\t\t\t\t\t{func} @ {file}:{line}\n&quot;</td></tr>
<tr class="memdesc:ga524c16f280d92ee8ab683162c9ce01fa"><td class="mdescLeft">&#160;</td><td class="mdescRight">Default format of the messages. <br /></td></tr>
<tr class="separator:ga524c16f280d92ee8ab683162c9ce01fa"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:ga27b613c6727857a7cbcd0165d862034e"><td class="memItemLeft" align="right" valign="top"><a id="ga27b613c6727857a7cbcd0165d862034e"></a>
#define&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="group__DefaultConfigMacros.html#ga27b613c6727857a7cbcd0165d862034e">CLUTCHDUMP_DEFAULT_FORMAT</a>&#160;&#160;&#160;&quot;# {level} in {func} @ {file}:{line}&quot;</td></tr>
<tr class="memdesc:ga27b613c6727857a7cbcd0165d862034e"><td class="mdescLeft">&#160;</td><td class="mdescRight">Default format of the comment line in file dump. <br /></td></tr>
<tr class="separator:ga27b613c6727857a7cbcd0165d862034e"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:ga54d29e956575e1c731eab5406135c5df"><td class="memItemLeft" align="right" valign="top"><a id="ga54d29e956575e1c731eab5406135c5df"></a>
#define&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="group__DefaultConfigMacros.html#ga54d29e956575e1c731eab5406135c5df">CLUTCHDUMP_DEFAULT_SEP</a>&#160;&#160;&#160;&quot;\n&quot;</td></tr>
<tr class="memdesc:ga54d29e956575e1c731eab5406135c5df"><td class="mdescLeft">&#160;</td><td class="mdescRight">Default item separator for dump. <br /></td></tr>
<tr class="separator:ga54d29e956575e1c731eab5406135c5df"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:ga45c4c964fad4ad1641d5c9c28c4645b9"><td class="memItemLeft" align="right" valign="top"><a id="ga45c4c964fad4ad1641d5c9c28c4645b9"></a>
#define&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="group__DefaultConfigMacros.html#ga45c4c964fad4ad1641d5c9c28c4645b9">CLUTCHLOG_DEFAULT_DEPTH_MARK</a>&#160;&#160;&#160;&quot;&gt;&quot;</td></tr>
<tr class="memdesc:ga45c4c964fad4ad1641d5c9c28c4645b9"><td class="mdescLeft">&#160;</td><td class="mdescRight">Default mark for stack depth. <br /></td></tr>
<tr class="separator:ga45c4c964fad4ad1641d5c9c28c4645b9"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:ga8564be479b948ee3052b61783c66d415"><td class="memItemLeft" align="right" valign="top"><a id="ga8564be479b948ee3052b61783c66d415"></a>
#define&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="group__DefaultConfigMacros.html#ga8564be479b948ee3052b61783c66d415">CLUTCHLOG_DEFAULT_DEPTH_BUILT_NODEBUG</a>&#160;&#160;&#160;clutchlog::level::progress</td></tr>
<tr class="memdesc:ga8564be479b948ee3052b61783c66d415"><td class="mdescLeft">&#160;</td><td class="mdescRight">Default level over which calls to the logger are optimized out when NDEBUG is defined. <br /></td></tr>
<tr class="separator:ga8564be479b948ee3052b61783c66d415"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:ga98f30d814d4913a8a7c93a8793f49adf"><td class="memItemLeft" align="right" valign="top"><a id="ga98f30d814d4913a8a7c93a8793f49adf"></a>
#define&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="group__DefaultConfigMacros.html#ga98f30d814d4913a8a7c93a8793f49adf">CLUTCHLOG_STRIP_CALLS</a>&#160;&#160;&#160;5</td></tr>
<tr class="memdesc:ga98f30d814d4913a8a7c93a8793f49adf"><td class="mdescLeft">&#160;</td><td class="mdescRight">Number of call stack levels to remove from depth display by default. <br /></td></tr>
<tr class="separator:ga98f30d814d4913a8a7c93a8793f49adf"><td class="memSeparator" colspan="2">&#160;</td></tr>
</table>
<a name="details" id="details"></a><h2 class="groupheader">Detailed Description</h2>
</div><!-- contents -->

Some files were not shown because too many files have changed in this diff Show more