clutchlog/docs/group__UseMacros.html
2022-09-01 22:55:13 +02:00

852 lines
77 KiB
HTML

<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "https://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<html xmlns="http://www.w3.org/1999/xhtml">
<head>
<meta http-equiv="Content-Type" content="text/xhtml;charset=UTF-8"/>
<meta http-equiv="X-UA-Compatible" content="IE=9"/>
<meta name="generator" content="Doxygen 1.8.17"/>
<meta name="viewport" content="width=device-width, initial-scale=1"/>
<title>clutchlog: High-level API macros</title>
<link href="tabs.css" rel="stylesheet" type="text/css"/>
<script type="text/javascript" src="jquery.js"></script>
<script type="text/javascript" src="dynsections.js"></script>
<link href="search/search.css" rel="stylesheet" type="text/css"/>
<script type="text/javascript" src="search/searchdata.js"></script>
<script type="text/javascript" src="search/search.js"></script>
<link href="doxygen.css" rel="stylesheet" type="text/css" />
</head>
<body>
<div id="top"><!-- do not remove this div, it is closed by doxygen! -->
<div id="titlearea">
<table cellspacing="0" cellpadding="0">
<tbody>
<tr style="height: 56px;">
<td id="projectalign" style="padding-left: 0.5em;">
<div id="projectname">clutchlog
&#160;<span id="projectnumber">0.8</span>
</div>
</td>
</tr>
</tbody>
</table>
</div>
<!-- end header part -->
<!-- Generated by Doxygen 1.8.17 -->
<script type="text/javascript">
/* @license magnet:?xt=urn:btih:cf05388f2679ee054f2beb29a391d25f4e673ac3&amp;dn=gpl-2.0.txt GPL-v2 */
var searchBox = new SearchBox("searchBox", "search",false,'Search');
/* @license-end */
</script>
<script type="text/javascript" src="menudata.js"></script>
<script type="text/javascript" src="menu.js"></script>
<script type="text/javascript">
/* @license magnet:?xt=urn:btih:cf05388f2679ee054f2beb29a391d25f4e673ac3&amp;dn=gpl-2.0.txt GPL-v2 */
$(function() {
initMenu('',true,false,'search.php','Search');
$(document).ready(function() { init_search(); });
});
/* @license-end */</script>
<div id="main-nav"></div>
</div><!-- top -->
<!-- window showing the filter options -->
<div id="MSearchSelectWindow"
onmouseover="return searchBox.OnSearchSelectShow()"
onmouseout="return searchBox.OnSearchSelectHide()"
onkeydown="return searchBox.OnSearchSelectKey(event)">
</div>
<!-- iframe showing the search results (closed by default) -->
<div id="MSearchResultsWindow">
<iframe src="javascript:void(0)" frameborder="0"
name="MSearchResults" id="MSearchResults">
</iframe>
</div>
<div class="header">
<div class="summary">
<a href="#groups">Modules</a> &#124;
<a href="#nested-classes">Classes</a> &#124;
<a href="#define-members">Macros</a> &#124;
<a href="#enum-members">Enumerations</a> &#124;
<a href="#enumval-members">Enumerator</a> &#124;
<a href="#func-members">Functions</a> &#124;
<a href="#var-members">Variables</a> &#124;
<a href="#friend-members">Friends</a> </div>
<div class="headertitle">
<div class="title">High-level API macros</div> </div>
</div><!--header-->
<div class="contents">
<div class="dynheader">
Collaboration diagram for High-level API macros:</div>
<div class="dyncontent">
<div class="center"><img src="group__UseMacros.png" border="0" usemap="#group____UseMacros" alt=""/></div>
<map name="group____UseMacros" id="group____UseMacros">
<area shape="rect" href="group__Formating.html" title=" " alt="" coords="205,5,317,31"/>
<area shape="rect" title=" " alt="" coords="5,5,157,31"/>
</map>
</div>
<table class="memberdecls">
<tr class="heading"><td colspan="2"><h2 class="groupheader"><a name="groups"></a>
Modules</h2></td></tr>
<tr class="memitem:group__Formating"><td class="memItemLeft" align="right" valign="top">&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="group__Formating.html">Formating tools</a></td></tr>
<tr class="separator:"><td class="memSeparator" colspan="2">&#160;</td></tr>
</table><table class="memberdecls">
<tr class="heading"><td colspan="2"><h2 class="groupheader"><a name="nested-classes"></a>
Classes</h2></td></tr>
<tr class="memitem:"><td class="memItemLeft" align="right" valign="top">struct &#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="structclutchlog_1_1scope__t.html">clutchlog::scope_t</a></td></tr>
<tr class="memdesc:"><td class="mdescLeft">&#160;</td><td class="mdescRight">Structure holding a location matching. <a href="structclutchlog_1_1scope__t.html#details">More...</a><br /></td></tr>
<tr class="separator:"><td class="memSeparator" colspan="2">&#160;</td></tr>
</table><table class="memberdecls">
<tr class="heading"><td colspan="2"><h2 class="groupheader"><a name="define-members"></a>
Macros</h2></td></tr>
<tr class="memitem:gae8911119d726a43b77f5781cb5a72813"><td class="memItemLeft" align="right" valign="top"><a id="gae8911119d726a43b77f5781cb5a72813"></a>
#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>
<tr class="separator:gae8911119d726a43b77f5781cb5a72813"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:ga6f86187e2b35e7e1907d688f504a197d"><td class="memItemLeft" align="right" valign="top">#define&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="group__UseMacros.html#ga6f86187e2b35e7e1907d688f504a197d">CLUTCHLOG</a>(LEVEL, WHAT)</td></tr>
<tr class="memdesc:ga6f86187e2b35e7e1907d688f504a197d"><td class="mdescLeft">&#160;</td><td class="mdescRight">Log a message at the given level. <a href="group__UseMacros.html#ga6f86187e2b35e7e1907d688f504a197d">More...</a><br /></td></tr>
<tr class="separator:ga6f86187e2b35e7e1907d688f504a197d"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:ga572e3aa19d8b39e3ed0b9e91961104c2"><td class="memItemLeft" align="right" valign="top">#define&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="group__UseMacros.html#ga572e3aa19d8b39e3ed0b9e91961104c2">CLUTCHDUMP</a>(LEVEL, CONTAINER, FILENAME)</td></tr>
<tr class="memdesc:ga572e3aa19d8b39e3ed0b9e91961104c2"><td class="mdescLeft">&#160;</td><td class="mdescRight">Dump the given container. <a href="group__UseMacros.html#ga572e3aa19d8b39e3ed0b9e91961104c2">More...</a><br /></td></tr>
<tr class="separator:ga572e3aa19d8b39e3ed0b9e91961104c2"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:ga9f77cee4f853e582262930c9c17f90ae"><td class="memItemLeft" align="right" valign="top">#define&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="group__UseMacros.html#ga9f77cee4f853e582262930c9c17f90ae">CLUTCHFUNC</a>(LEVEL, FUNC, ...)</td></tr>
<tr class="memdesc:ga9f77cee4f853e582262930c9c17f90ae"><td class="mdescLeft">&#160;</td><td class="mdescRight">Call any function if the scope matches. <a href="group__UseMacros.html#ga9f77cee4f853e582262930c9c17f90ae">More...</a><br /></td></tr>
<tr class="separator:ga9f77cee4f853e582262930c9c17f90ae"><td class="memSeparator" colspan="2">&#160;</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"><a id="ga524c16f280d92ee8ab683162c9ce01fa"></a>
#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">Compile-time default format of the messages (debug mode: with absolute location). <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__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">Compile-time 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__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">Compile-time 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__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">Compile-time 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"><a id="ga98f30d814d4913a8a7c93a8793f49adf"></a>
#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">Compile-time 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:gad5fbbacf74b8e4669b8f9efdfe81bd25"><td class="memItemLeft" align="right" valign="top"><a id="gad5fbbacf74b8e4669b8f9efdfe81bd25"></a>
#define&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="group__UseMacros.html#gad5fbbacf74b8e4669b8f9efdfe81bd25">CLUTCHLOG_HFILL_MARK</a>&#160;&#160;&#160;'.'</td></tr>
<tr class="memdesc:gad5fbbacf74b8e4669b8f9efdfe81bd25"><td class="mdescLeft">&#160;</td><td class="mdescRight">Character used as a filling for right-align the right part of messages with "{hfill}". <br /></td></tr>
<tr class="separator:gad5fbbacf74b8e4669b8f9efdfe81bd25"><td class="memSeparator" colspan="2">&#160;</td></tr>
</table><table class="memberdecls">
<tr class="heading"><td colspan="2"><h2 class="groupheader"><a name="enum-members"></a>
Enumerations</h2></td></tr>
<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">clutchlog::fmt::fg</a> { <br />
&#160;&#160;<b>black</b> = 30,
<b>red</b> = 31,
<b>green</b> = 32,
<b>yellow</b> = 33,
<br />
&#160;&#160;<b>blue</b> = 34,
<b>magenta</b> = 35,
<b>cyan</b> = 36,
<b>white</b> = 37,
<br />
&#160;&#160;<b>none</b>
<br />
}</td></tr>
<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">clutchlog::fmt::bg</a> { <br />
&#160;&#160;<b>black</b> = 40,
<b>red</b> = 41,
<b>green</b> = 42,
<b>yellow</b> = 43,
<br />
&#160;&#160;<b>blue</b> = 44,
<b>magenta</b> = 45,
<b>cyan</b> = 46,
<b>white</b> = 47,
<br />
&#160;&#160;<b>none</b>
<br />
}</td></tr>
<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">clutchlog::fmt::typo</a> { <br />
&#160;&#160;<b>reset</b> = 0,
<b>bold</b> = 1,
<b>underline</b> = 4,
<b>inverse</b> = 7,
<br />
&#160;&#160;<b>none</b>
<br />
}</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="func-members"></a>
Functions</h2></td></tr>
<tr class="memitem:ga407506bc02ed3f91d88b3df630e54959"><td class="memItemLeft" align="right" valign="top"><a id="ga407506bc02ed3f91d88b3df630e54959"></a>
&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="group__UseMacros.html#ga407506bc02ed3f91d88b3df630e54959">clutchlog::fmt::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:ga0b607e343b6813b99eafca1fdfec9cd0"><td class="memItemLeft" align="right" valign="top"><a id="ga0b607e343b6813b99eafca1fdfec9cd0"></a>
std::ostream &amp;&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="group__UseMacros.html#ga0b607e343b6813b99eafca1fdfec9cd0">clutchlog::fmt::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>
<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">clutchlog::fmt::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 class="memitem:ga0f1d865ffcf17f215e5559cdd2690572"><td class="memItemLeft" align="right" valign="top"><a id="ga0f1d865ffcf17f215e5559cdd2690572"></a>
&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="group__UseMacros.html#ga0f1d865ffcf17f215e5559cdd2690572">clutchlog::scope_t::scope_t</a> ()</td></tr>
<tr class="memdesc:ga0f1d865ffcf17f215e5559cdd2690572"><td class="mdescLeft">&#160;</td><td class="mdescRight">Constructor. <br /></td></tr>
<tr class="separator:ga0f1d865ffcf17f215e5559cdd2690572"><td class="memSeparator" colspan="2">&#160;</td></tr>
</table><table class="memberdecls">
<tr class="heading"><td colspan="2"><h2 class="groupheader"><a name="var-members"></a>
Variables</h2></td></tr>
<tr class="memitem:ga0c4ac57601e6f8d146fd5cc060968ecc"><td class="memItemLeft" align="right" valign="top"><a id="ga0c4ac57601e6f8d146fd5cc060968ecc"></a>
static std::string&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="group__UseMacros.html#ga0c4ac57601e6f8d146fd5cc060968ecc">clutchlog::default_format</a> = <a class="el" href="group__UseMacros.html#ga524c16f280d92ee8ab683162c9ce01fa">CLUTCHLOG_DEFAULT_FORMAT</a></td></tr>
<tr class="memdesc:ga0c4ac57601e6f8d146fd5cc060968ecc"><td class="mdescLeft">&#160;</td><td class="mdescRight">Default format of the messages. <br /></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"><a id="gace879554298e6e6e36dafef330c27be8"></a>
static std::string&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="group__UseMacros.html#gace879554298e6e6e36dafef330c27be8">clutchlog::dump_default_format</a> = <a class="el" href="group__UseMacros.html#ga27b613c6727857a7cbcd0165d862034e">CLUTCHDUMP_DEFAULT_FORMAT</a></td></tr>
<tr class="memdesc:gace879554298e6e6e36dafef330c27be8"><td class="mdescLeft">&#160;</td><td class="mdescRight">Default format of the comment line in file dump. <br /></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"><a id="gaf898bffe23b125245e338d7495c76d45"></a>
static std::string&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="group__UseMacros.html#gaf898bffe23b125245e338d7495c76d45">clutchlog::dump_default_sep</a> = <a class="el" href="group__UseMacros.html#ga54d29e956575e1c731eab5406135c5df">CLUTCHDUMP_DEFAULT_SEP</a></td></tr>
<tr class="memdesc:gaf898bffe23b125245e338d7495c76d45"><td class="mdescLeft">&#160;</td><td class="mdescRight">Default item separator for dump. <br /></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"><a id="ga229fd61519f1245282440120f2d45fb5"></a>
static std::string&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="group__UseMacros.html#ga229fd61519f1245282440120f2d45fb5">clutchlog::default_depth_mark</a> = <a class="el" href="group__UseMacros.html#ga45c4c964fad4ad1641d5c9c28c4645b9">CLUTCHLOG_DEFAULT_DEPTH_MARK</a></td></tr>
<tr class="memdesc:ga229fd61519f1245282440120f2d45fb5"><td class="mdescLeft">&#160;</td><td class="mdescRight">Default mark for stack depth. <br /></td></tr>
<tr class="separator:ga229fd61519f1245282440120f2d45fb5"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:ga1a8cb6411726133208f5a2f2cb42d468"><td class="memItemLeft" align="right" valign="top"><a id="ga1a8cb6411726133208f5a2f2cb42d468"></a>
static unsigned int&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="group__UseMacros.html#ga1a8cb6411726133208f5a2f2cb42d468">clutchlog::default_strip_calls</a> = <a class="el" href="group__UseMacros.html#ga98f30d814d4913a8a7c93a8793f49adf">CLUTCHLOG_STRIP_CALLS</a></td></tr>
<tr class="memdesc:ga1a8cb6411726133208f5a2f2cb42d468"><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:ga1a8cb6411726133208f5a2f2cb42d468"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:ga76eb34537b634aadb75e255f7887eeb6"><td class="memItemLeft" align="right" valign="top"><a id="ga76eb34537b634aadb75e255f7887eeb6"></a>
static char&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="group__UseMacros.html#ga76eb34537b634aadb75e255f7887eeb6">clutchlog::default_hfill_char</a> = <a class="el" href="group__UseMacros.html#gad5fbbacf74b8e4669b8f9efdfe81bd25">CLUTCHLOG_HFILL_MARK</a></td></tr>
<tr class="memdesc:ga76eb34537b634aadb75e255f7887eeb6"><td class="mdescLeft">&#160;</td><td class="mdescRight">Default character used as a filling for right-align the right part of messages with "{hfill}". <br /></td></tr>
<tr class="separator:ga76eb34537b634aadb75e255f7887eeb6"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:ga8307a848fcf9ed929435b3e1f2b53401"><td class="memItemLeft" align="right" valign="top"><a id="ga8307a848fcf9ed929435b3e1f2b53401"></a>
enum <a class="el" href="group__UseMacros.html#ga4662a3ec3577c6a575a2c734636ed8a0">clutchlog::fmt::fg</a>&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="group__UseMacros.html#ga8307a848fcf9ed929435b3e1f2b53401">clutchlog::fmt::fore</a></td></tr>
<tr class="memdesc:ga8307a848fcf9ed929435b3e1f2b53401"><td class="mdescLeft">&#160;</td><td class="mdescRight">Foreground color. <br /></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"><a id="ga86696b20e5b31c96ba592926efb324f3"></a>
enum <a class="el" href="group__UseMacros.html#ga1cf3e27e4041250ffea0a6d58010da1e">clutchlog::fmt::bg</a>&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="group__UseMacros.html#ga86696b20e5b31c96ba592926efb324f3">clutchlog::fmt::back</a></td></tr>
<tr class="memdesc:ga86696b20e5b31c96ba592926efb324f3"><td class="mdescLeft">&#160;</td><td class="mdescRight">Background color. <br /></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"><a id="ga2bb0fde65fcd264393e102314dd1610b"></a>
enum <a class="el" href="group__UseMacros.html#ga932f47b78fb7b10590d5613a1c4eab89">clutchlog::fmt::typo</a>&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="group__UseMacros.html#ga2bb0fde65fcd264393e102314dd1610b">clutchlog::fmt::style</a></td></tr>
<tr class="memdesc:ga2bb0fde65fcd264393e102314dd1610b"><td class="mdescLeft">&#160;</td><td class="mdescRight">Typographic style. <br /></td></tr>
<tr class="separator:ga2bb0fde65fcd264393e102314dd1610b"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:gae6c0e4ed20db797124ed1e5faa033ad9"><td class="memItemLeft" align="right" valign="top"><a id="gae6c0e4ed20db797124ed1e5faa033ad9"></a>
bool&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="group__UseMacros.html#gae6c0e4ed20db797124ed1e5faa033ad9">clutchlog::scope_t::matches</a></td></tr>
<tr class="memdesc:gae6c0e4ed20db797124ed1e5faa033ad9"><td class="mdescLeft">&#160;</td><td class="mdescRight">Everything is compatible. <br /></td></tr>
<tr class="separator:gae6c0e4ed20db797124ed1e5faa033ad9"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:gadcca6846ff90d436c61861db85917744"><td class="memItemLeft" align="right" valign="top"><a id="gadcca6846ff90d436c61861db85917744"></a>
<a class="el" href="group__UseMacros.html#ga10fd25a1b51c8c95bd6d876ce1b4b928">level</a>&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="group__UseMacros.html#gadcca6846ff90d436c61861db85917744">clutchlog::scope_t::stage</a></td></tr>
<tr class="memdesc:gadcca6846ff90d436c61861db85917744"><td class="mdescLeft">&#160;</td><td class="mdescRight">Current log level. <br /></td></tr>
<tr class="separator:gadcca6846ff90d436c61861db85917744"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:ga7918e55cd3bac1bd30c69b8c711387ff"><td class="memItemLeft" align="right" valign="top"><a id="ga7918e55cd3bac1bd30c69b8c711387ff"></a>
bool&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="group__UseMacros.html#ga7918e55cd3bac1bd30c69b8c711387ff">clutchlog::scope_t::there</a></td></tr>
<tr class="memdesc:ga7918e55cd3bac1bd30c69b8c711387ff"><td class="mdescLeft">&#160;</td><td class="mdescRight">Location is compatible. <br /></td></tr>
<tr class="separator:ga7918e55cd3bac1bd30c69b8c711387ff"><td class="memSeparator" colspan="2">&#160;</td></tr>
</table><table class="memberdecls">
<tr class="heading"><td colspan="2"><h2 class="groupheader"><a name="friend-members"></a>
Friends</h2></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">clutchlog::fmt::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><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: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">clutchlog::level</a> { <br />
&#160;&#160;<b>critical</b> =0,
<b>error</b> =1,
<b>warning</b> =2,
<b>progress</b> =3,
<br />
&#160;&#160;<b>note</b> =4,
<b>info</b> =5,
<b>debug</b> =6,
<b>xdebug</b> =7
<br />
}</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">clutchlog::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:ga56ed762c056c5b1d0020863b11bd188e"><td class="memItemLeft" align="right" valign="top"><a id="ga56ed762c056c5b1d0020863b11bd188e"></a>
const size_t&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="group__UseMacros.html#ga56ed762c056c5b1d0020863b11bd188e">clutchlog::_strip_calls</a></td></tr>
<tr class="memdesc:ga56ed762c056c5b1d0020863b11bd188e"><td class="mdescLeft">&#160;</td><td class="mdescRight">Current number of call stack levels to remove from depth display. <br /></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"><a id="gab1c377a376e6772fe1746ff7147c125f"></a>
const std::map&lt; <a class="el" href="group__UseMacros.html#ga10fd25a1b51c8c95bd6d876ce1b4b928">level</a>, std::string &gt;&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="group__UseMacros.html#gab1c377a376e6772fe1746ff7147c125f">clutchlog::_level_word</a></td></tr>
<tr class="memdesc:gab1c377a376e6772fe1746ff7147c125f"><td class="mdescLeft">&#160;</td><td class="mdescRight">Dictionary of level identifier to their string representation. <br /></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"><a id="gabd4625bf211bfbaa30d9c126fa3d7888"></a>
std::map&lt; std::string, <a class="el" href="group__UseMacros.html#ga10fd25a1b51c8c95bd6d876ce1b4b928">level</a> &gt;&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="group__UseMacros.html#gabd4625bf211bfbaa30d9c126fa3d7888">clutchlog::_word_level</a></td></tr>
<tr class="memdesc:gabd4625bf211bfbaa30d9c126fa3d7888"><td class="mdescLeft">&#160;</td><td class="mdescRight">Dictionary of level string to their identifier. <br /></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"><a id="gab805ac5c33885459f9f752518a4aa735"></a>
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"><a class="el" href="group__UseMacros.html#gab805ac5c33885459f9f752518a4aa735">clutchlog::_level_fmt</a></td></tr>
<tr class="memdesc:gab805ac5c33885459f9f752518a4aa735"><td class="mdescLeft">&#160;</td><td class="mdescRight">Dictionary of level identifier to their format. <br /></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"><a id="ga7c6e3fc082bc6f55d50131ed2b32e81e"></a>
std::string&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="group__UseMacros.html#ga7c6e3fc082bc6f55d50131ed2b32e81e">clutchlog::_format_log</a></td></tr>
<tr class="memdesc:ga7c6e3fc082bc6f55d50131ed2b32e81e"><td class="mdescLeft">&#160;</td><td class="mdescRight">Current format of the standard output. <br /></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"><a id="ga5f4ddb57ce42e8be86a7c7d269f7bae5"></a>
std::string&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="group__UseMacros.html#ga5f4ddb57ce42e8be86a7c7d269f7bae5">clutchlog::_format_dump</a></td></tr>
<tr class="memdesc:ga5f4ddb57ce42e8be86a7c7d269f7bae5"><td class="mdescLeft">&#160;</td><td class="mdescRight">Current format of the file output. <br /></td></tr>
<tr class="separator:ga5f4ddb57ce42e8be86a7c7d269f7bae5"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:gae24e7530a131344f53e3e794b913845a"><td class="memItemLeft" align="right" valign="top"><a id="gae24e7530a131344f53e3e794b913845a"></a>
char&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="group__UseMacros.html#gae24e7530a131344f53e3e794b913845a">clutchlog::_hfill_char</a></td></tr>
<tr class="memdesc:gae24e7530a131344f53e3e794b913845a"><td class="mdescLeft">&#160;</td><td class="mdescRight">Character for filling. <br /></td></tr>
<tr class="separator:gae24e7530a131344f53e3e794b913845a"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:ga1896f6c4b8597e3e76ff93970bd85167"><td class="memItemLeft" align="right" valign="top"><a id="ga1896f6c4b8597e3e76ff93970bd85167"></a>
std::ostream *&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="group__UseMacros.html#ga1896f6c4b8597e3e76ff93970bd85167">clutchlog::_out</a></td></tr>
<tr class="memdesc:ga1896f6c4b8597e3e76ff93970bd85167"><td class="mdescLeft">&#160;</td><td class="mdescRight">Standard output. <br /></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 id="gaeb60684c89bcef5aa9273075c21cc993"></a>
<a class="el" href="group__UseMacros.html#ga10fd25a1b51c8c95bd6d876ce1b4b928">level</a>&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="group__UseMacros.html#gaeb60684c89bcef5aa9273075c21cc993">clutchlog::_stage</a></td></tr>
<tr class="memdesc:gaeb60684c89bcef5aa9273075c21cc993"><td class="mdescLeft">&#160;</td><td class="mdescRight">Current log level. <br /></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"><a id="gaded03528f34d9000f618419c482c5042"></a>
std::regex&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="group__UseMacros.html#gaded03528f34d9000f618419c482c5042">clutchlog::_in_file</a></td></tr>
<tr class="memdesc:gaded03528f34d9000f618419c482c5042"><td class="mdescLeft">&#160;</td><td class="mdescRight">Current file location filter. <br /></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"><a id="ga130c4f12eacbd2028102838fe16b734e"></a>
std::regex&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="group__UseMacros.html#ga130c4f12eacbd2028102838fe16b734e">clutchlog::_in_func</a></td></tr>
<tr class="memdesc:ga130c4f12eacbd2028102838fe16b734e"><td class="mdescLeft">&#160;</td><td class="mdescRight">Current function location filter. <br /></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"><a id="ga41757198b29862832a14472a9e5e24c6"></a>
std::regex&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="group__UseMacros.html#ga41757198b29862832a14472a9e5e24c6">clutchlog::_in_line</a></td></tr>
<tr class="memdesc:ga41757198b29862832a14472a9e5e24c6"><td class="mdescLeft">&#160;</td><td class="mdescRight">Current line location filter. <br /></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"><a id="ga0906d74275cedcd403da94879764815e"></a>
&#160;</td><td class="memItemRight" valign="bottom"><b>clutchlog::clutchlog</b> (<a class="el" href="classclutchlog.html">clutchlog</a> const &amp;)=delete</td></tr>
<tr class="separator:ga0906d74275cedcd403da94879764815e"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:gaef653a9744a72a889ca8163269bb781e"><td class="memItemLeft" align="right" valign="top"><a id="gaef653a9744a72a889ca8163269bb781e"></a>
void&#160;</td><td class="memItemRight" valign="bottom"><b>clutchlog::operator=</b> (<a class="el" href="classclutchlog.html">clutchlog</a> const &amp;)=delete</td></tr>
<tr class="separator:gaef653a9744a72a889ca8163269bb781e"><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>
Configuration accessors</h2></td></tr>
<tr class="memitem:ga656c277e074b64728cca871f2b484d1c"><td class="memItemLeft" align="right" valign="top"><a id="ga656c277e074b64728cca871f2b484d1c"></a>
void&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="group__UseMacros.html#ga656c277e074b64728cca871f2b484d1c">clutchlog::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"><a id="gafc53dbca51d0e2322a21899d0c571a80"></a>
std::string&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="group__UseMacros.html#gafc53dbca51d0e2322a21899d0c571a80">clutchlog::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"><a id="ga2144abe4ec6f630126b6490908b5f924"></a>
void&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="group__UseMacros.html#ga2144abe4ec6f630126b6490908b5f924">clutchlog::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"><a id="gaa8d0a569ed3623ce36c5e567ec2d1ad5"></a>
std::string&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="group__UseMacros.html#gaa8d0a569ed3623ce36c5e567ec2d1ad5">clutchlog::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"><a id="ga7fd7c7bd3668c537061c314a619a336d"></a>
void&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="group__UseMacros.html#ga7fd7c7bd3668c537061c314a619a336d">clutchlog::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"><a id="ga6c6ab42a1df147e6c2d115bc36ec8266"></a>
std::ostream &amp;&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="group__UseMacros.html#ga6c6ab42a1df147e6c2d115bc36ec8266">clutchlog::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"><a id="ga3cb0e4f43a4cadf1966001ad7c9861f4"></a>
void&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="group__UseMacros.html#ga3cb0e4f43a4cadf1966001ad7c9861f4">clutchlog::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) with an identifier. <br /></td></tr>
<tr class="separator:ga3cb0e4f43a4cadf1966001ad7c9861f4"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:ga7a7738eaad114bfa870121412fe23ad9"><td class="memItemLeft" align="right" valign="top"><a id="ga7a7738eaad114bfa870121412fe23ad9"></a>
void&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="group__UseMacros.html#ga7a7738eaad114bfa870121412fe23ad9">clutchlog::threshold</a> (const std::string &amp;l)</td></tr>
<tr class="memdesc:ga7a7738eaad114bfa870121412fe23ad9"><td class="mdescLeft">&#160;</td><td class="mdescRight">Set the log level (below which logs are not printed) with a string. <br /></td></tr>
<tr class="separator:ga7a7738eaad114bfa870121412fe23ad9"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:gab45287cc9c14217904a13aff49573732"><td class="memItemLeft" align="right" valign="top"><a id="gab45287cc9c14217904a13aff49573732"></a>
<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">clutchlog::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:gaff3aa09fb60f7d6dc688c028d3834d8a"><td class="memItemLeft" align="right" valign="top"><a id="gaff3aa09fb60f7d6dc688c028d3834d8a"></a>
const std::map&lt; std::string, <a class="el" href="group__UseMacros.html#ga10fd25a1b51c8c95bd6d876ce1b4b928">level</a> &gt; &amp;&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="group__UseMacros.html#gaff3aa09fb60f7d6dc688c028d3834d8a">clutchlog::levels</a> () const</td></tr>
<tr class="memdesc:gaff3aa09fb60f7d6dc688c028d3834d8a"><td class="mdescLeft">&#160;</td><td class="mdescRight">Get the map of available log levels string representations toward their identifier. *&zwj;/. <br /></td></tr>
<tr class="separator:gaff3aa09fb60f7d6dc688c028d3834d8a"><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">clutchlog::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 class="memitem:ga10064493c22f5c03b502a42d814c5c5c"><td class="memItemLeft" align="right" valign="top"><a id="ga10064493c22f5c03b502a42d814c5c5c"></a>
void&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="group__UseMacros.html#ga10064493c22f5c03b502a42d814c5c5c">clutchlog::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"><a id="gad32b5a0274dc03ee0004f67ba58b2447"></a>
void&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="group__UseMacros.html#gad32b5a0274dc03ee0004f67ba58b2447">clutchlog::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"><a id="gaa26c6b81ebaeb9e9daa3457e3a3d17c9"></a>
void&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="group__UseMacros.html#gaa26c6b81ebaeb9e9daa3457e3a3d17c9">clutchlog::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"><a id="ga6666106b9e5c239b6ae5e0d1091648e3"></a>
void&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="group__UseMacros.html#ga6666106b9e5c239b6ae5e0d1091648e3">clutchlog::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">clutchlog::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"><a id="gad1cfa9945c3f7f98fe8ce724c627d0d6"></a>
void&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="group__UseMacros.html#gad1cfa9945c3f7f98fe8ce724c627d0d6">clutchlog::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 id="ga4831f44fd5ade102e57320632095934d"></a>
<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">clutchlog::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>
</table><table class="memberdecls">
<tr class="heading"><td colspan="2"><h2 class="groupheader"><a name="member-group"></a>
Low-level API</h2></td></tr>
<tr class="memitem:ga4ebdfcded6c56262676bf6926d63fc96"><td class="memItemLeft" align="right" valign="top"><a id="ga4ebdfcded6c56262676bf6926d63fc96"></a>
<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">clutchlog::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">clutchlog::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"><a id="gae90d5a1a428587ad67b38b2ea4ca9fa2"></a>
std::string&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="group__UseMacros.html#gae90d5a1a428587ad67b38b2ea4ca9fa2">clutchlog::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"><a id="gaf1219599b1361562c802779572aa669f"></a>
std::string&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="group__UseMacros.html#gaf1219599b1361562c802779572aa669f">clutchlog::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"><a id="ga23dbb98f0d3c5cc21c232cde16cf317a"></a>
void&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="group__UseMacros.html#ga23dbb98f0d3c5cc21c232cde16cf317a">clutchlog::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"><a id="ga63308e8deae3cfec6801318203494143"></a>
template&lt;class In &gt; </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">clutchlog::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=<a class="el" href="group__UseMacros.html#gaf898bffe23b125245e338d7495c76d45">dump_default_sep</a>) 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="member-group"></a>
All combination of constructors with different parameters orders.</h2></td></tr>
<tr class="memitem:ga6cc6126d113fc0647ed3acbf29cdc425"><td class="memItemLeft" align="right" valign="top"><a id="ga6cc6126d113fc0647ed3acbf29cdc425"></a>
&#160;</td><td class="memItemRight" valign="bottom"><b>clutchlog::fmt::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"><a id="gac69e6d3b7ddaec908c429ac61f354267"></a>
&#160;</td><td class="memItemRight" valign="bottom"><b>clutchlog::fmt::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"><a id="ga13453c0b5dbc19d9b510dcdc0352b443"></a>
&#160;</td><td class="memItemRight" valign="bottom"><b>clutchlog::fmt::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"><a id="ga65856874070ec0865b3a5b9aeb0e4f3d"></a>
&#160;</td><td class="memItemRight" valign="bottom"><b>clutchlog::fmt::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"><a id="ga99b3a05ddf6fa341cee6cb1e5dffc159"></a>
&#160;</td><td class="memItemRight" valign="bottom"><b>clutchlog::fmt::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"><a id="gaeea73b0239bf73ebc8ee84c1e6d278e2"></a>
&#160;</td><td class="memItemRight" valign="bottom"><b>clutchlog::fmt::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>
<a name="details" id="details"></a><h2 class="groupheader">Detailed Description</h2>
<h2 class="groupheader">Macro Definition Documentation</h2>
<a id="gaaf2e85e1153e6c88b458dd49e3c37c73"></a>
<h2 class="memtitle"><span class="permalink"><a href="#gaaf2e85e1153e6c88b458dd49e3c37c73">&#9670;&nbsp;</a></span>CLUTCHCODE</h2>
<div class="memitem">
<div class="memproto">
<table class="memname">
<tr>
<td class="memname">#define CLUTCHCODE</td>
<td>(</td>
<td class="paramtype">&#160;</td>
<td class="paramname">LEVEL, </td>
</tr>
<tr>
<td class="paramkey"></td>
<td></td>
<td class="paramtype">&#160;</td>
<td class="paramname"><em>...</em>&#160;</td>
</tr>
<tr>
<td></td>
<td>)</td>
<td></td><td></td>
</tr>
</table>
</div><div class="memdoc">
<b>Value:</b><div class="fragment"><div class="line"> <span class="keywordflow">do</span> { \</div>
<div class="line"> auto&amp; clutchlog__logger = <a class="code" href="group__UseMacros.html#gacfaceb77da01503b432644a3efaee4fa">clutchlog::logger</a>(); \</div>
<div class="line"> clutchlog::scope_t clutchlog__scope = clutchlog__logger.locate(clutchlog::level::LEVEL, <a class="code" href="group__UseMacros.html#gae8911119d726a43b77f5781cb5a72813">CLUTCHLOC</a>); \</div>
<div class="line"> if(clutchlog__scope.matches) { \</div>
<div class="line"> __VA_ARGS__ \</div>
<div class="line"> } \</div>
<div class="line"> } <span class="keywordflow">while</span>(0)</div>
</div><!-- fragment -->
<p>Run any code if the scope matches. </p>
</div>
</div>
<a id="ga572e3aa19d8b39e3ed0b9e91961104c2"></a>
<h2 class="memtitle"><span class="permalink"><a href="#ga572e3aa19d8b39e3ed0b9e91961104c2">&#9670;&nbsp;</a></span>CLUTCHDUMP</h2>
<div class="memitem">
<div class="memproto">
<table class="memname">
<tr>
<td class="memname">#define CLUTCHDUMP</td>
<td>(</td>
<td class="paramtype">&#160;</td>
<td class="paramname">LEVEL, </td>
</tr>
<tr>
<td class="paramkey"></td>
<td></td>
<td class="paramtype">&#160;</td>
<td class="paramname">CONTAINER, </td>
</tr>
<tr>
<td class="paramkey"></td>
<td></td>
<td class="paramtype">&#160;</td>
<td class="paramname">FILENAME&#160;</td>
</tr>
<tr>
<td></td>
<td>)</td>
<td></td><td></td>
</tr>
</table>
</div><div class="memdoc">
<b>Value:</b><div class="fragment"><div class="line"> <span class="keywordflow">do</span> { \</div>
<div class="line"> auto&amp; clutchlog__logger = <a class="code" href="group__UseMacros.html#gacfaceb77da01503b432644a3efaee4fa">clutchlog::logger</a>(); \</div>
<div class="line"> clutchlog__logger.dump(clutchlog::level::LEVEL, std::begin(CONTAINER), std::end(CONTAINER), \</div>
<div class="line"> <a class="code" href="group__UseMacros.html#gae8911119d726a43b77f5781cb5a72813">CLUTCHLOC</a>, FILENAME, <a class="code" href="group__UseMacros.html#ga54d29e956575e1c731eab5406135c5df">CLUTCHDUMP_DEFAULT_SEP</a>); \</div>
<div class="line"> } <span class="keywordflow">while</span>(0)</div>
</div><!-- fragment -->
<p>Dump the given container. </p>
</div>
</div>
<a id="ga9f77cee4f853e582262930c9c17f90ae"></a>
<h2 class="memtitle"><span class="permalink"><a href="#ga9f77cee4f853e582262930c9c17f90ae">&#9670;&nbsp;</a></span>CLUTCHFUNC</h2>
<div class="memitem">
<div class="memproto">
<table class="memname">
<tr>
<td class="memname">#define CLUTCHFUNC</td>
<td>(</td>
<td class="paramtype">&#160;</td>
<td class="paramname">LEVEL, </td>
</tr>
<tr>
<td class="paramkey"></td>
<td></td>
<td class="paramtype">&#160;</td>
<td class="paramname">FUNC, </td>
</tr>
<tr>
<td class="paramkey"></td>
<td></td>
<td class="paramtype">&#160;</td>
<td class="paramname"><em>...</em>&#160;</td>
</tr>
<tr>
<td></td>
<td>)</td>
<td></td><td></td>
</tr>
</table>
</div><div class="memdoc">
<b>Value:</b><div class="fragment"><div class="line"> <span class="keywordflow">do</span> { \</div>
<div class="line"> auto&amp; clutchlog__logger = <a class="code" href="group__UseMacros.html#gacfaceb77da01503b432644a3efaee4fa">clutchlog::logger</a>(); \</div>
<div class="line"> clutchlog::scope_t clutchlog__scope = clutchlog__logger.locate(clutchlog::level::LEVEL, <a class="code" href="group__UseMacros.html#gae8911119d726a43b77f5781cb5a72813">CLUTCHLOC</a>); \</div>
<div class="line"> if(clutchlog__scope.matches) { \</div>
<div class="line"> FUNC(__VA_ARGS__); \</div>
<div class="line"> } \</div>
<div class="line"> } <span class="keywordflow">while</span>(0)</div>
</div><!-- fragment -->
<p>Call any function if the scope matches. </p>
</div>
</div>
<a id="ga6f86187e2b35e7e1907d688f504a197d"></a>
<h2 class="memtitle"><span class="permalink"><a href="#ga6f86187e2b35e7e1907d688f504a197d">&#9670;&nbsp;</a></span>CLUTCHLOG</h2>
<div class="memitem">
<div class="memproto">
<table class="memname">
<tr>
<td class="memname">#define CLUTCHLOG</td>
<td>(</td>
<td class="paramtype">&#160;</td>
<td class="paramname">LEVEL, </td>
</tr>
<tr>
<td class="paramkey"></td>
<td></td>
<td class="paramtype">&#160;</td>
<td class="paramname">WHAT&#160;</td>
</tr>
<tr>
<td></td>
<td>)</td>
<td></td><td></td>
</tr>
</table>
</div><div class="memdoc">
<b>Value:</b><div class="fragment"><div class="line"> <span class="keywordflow">do</span> { \</div>
<div class="line"> auto&amp; clutchlog__logger = <a class="code" href="group__UseMacros.html#gacfaceb77da01503b432644a3efaee4fa">clutchlog::logger</a>(); \</div>
<div class="line"> std::ostringstream clutchlog__msg ; clutchlog__msg &lt;&lt; WHAT; \</div>
<div class="line"> clutchlog__logger.log(clutchlog::level::LEVEL, clutchlog__msg.str(), <a class="code" href="group__UseMacros.html#gae8911119d726a43b77f5781cb5a72813">CLUTCHLOC</a>); \</div>
<div class="line"> } <span class="keywordflow">while</span>(0)</div>
</div><!-- fragment -->
<p>Log a message at the given level. </p>
</div>
</div>
<h2 class="groupheader">Function Documentation</h2>
<a id="gacebed8c9df9204f22bf8488e62e1cedd"></a>
<h2 class="memtitle"><span class="permalink"><a href="#gacebed8c9df9204f22bf8488e62e1cedd">&#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="group__UseMacros.html#ga10fd25a1b51c8c95bd6d876ce1b4b928">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="gacfaceb77da01503b432644a3efaee4fa"></a>
<h2 class="memtitle"><span class="permalink"><a href="#gacfaceb77da01503b432644a3efaee4fa">&#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="group__UseMacros.html#ga23dbb98f0d3c5cc21c232cde16cf317a">log</a> = <a class="code" href="group__UseMacros.html#gacfaceb77da01503b432644a3efaee4fa">clutchlog::logger</a>();</div>
</div><!-- fragment -->
</div>
</div>
<a id="gafeaedd18298498d1dcfcc15f5f17ac3c"></a>
<h2 class="memtitle"><span class="permalink"><a href="#gafeaedd18298498d1dcfcc15f5f17ac3c">&#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>
<a id="ga972f895c70edc335f3018a2c8971d59e"></a>
<h2 class="memtitle"><span class="permalink"><a href="#ga972f895c70edc335f3018a2c8971d59e">&#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="group__UseMacros.html#ga23dbb98f0d3c5cc21c232cde16cf317a">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="gac3ec55057b9c734b66f169bf43dbd591"></a>
<h2 class="memtitle"><span class="permalink"><a href="#gac3ec55057b9c734b66f169bf43dbd591">&#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="group__UseMacros.html#ga10fd25a1b51c8c95bd6d876ce1b4b928">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>
<h2 class="groupheader">Friends</h2>
<a id="ga96849ba427feac3a2eeaa1165e3845da"></a>
<h2 class="memtitle"><span class="permalink"><a href="#ga96849ba427feac3a2eeaa1165e3845da">&#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>
</div><!-- contents -->
<div class="ttc" id="agroup__UseMacros_html_gacfaceb77da01503b432644a3efaee4fa"><div class="ttname"><a href="group__UseMacros.html#gacfaceb77da01503b432644a3efaee4fa">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:273</div></div>
<div class="ttc" id="agroup__UseMacros_html_ga54d29e956575e1c731eab5406135c5df"><div class="ttname"><a href="group__UseMacros.html#ga54d29e956575e1c731eab5406135c5df">CLUTCHDUMP_DEFAULT_SEP</a></div><div class="ttdeci">#define CLUTCHDUMP_DEFAULT_SEP</div><div class="ttdoc">Compile-time default item separator for dump.</div><div class="ttdef"><b>Definition:</b> clutchlog.h:235</div></div>
<div class="ttc" id="agroup__UseMacros_html_ga23dbb98f0d3c5cc21c232cde16cf317a"><div class="ttname"><a href="group__UseMacros.html#ga23dbb98f0d3c5cc21c232cde16cf317a">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:814</div></div>
<div class="ttc" id="agroup__UseMacros_html_gae8911119d726a43b77f5781cb5a72813"><div class="ttname"><a href="group__UseMacros.html#gae8911119d726a43b77f5781cb5a72813">CLUTCHLOC</a></div><div class="ttdeci">#define CLUTCHLOC</div><div class="ttdoc">Handy shortcuts to location.</div><div class="ttdef"><b>Definition:</b> clutchlog.h:75</div></div>
<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:294</div></div>
<!-- start footer part -->
<hr class="footer"/><address class="footer"><small>
Generated by &#160;<a href="http://www.doxygen.org/index.html">
<img class="footer" src="doxygen.png" alt="doxygen"/>
</a> 1.8.17
</small></address>
</body>
</html>