diff --git a/docs/classclutchlog-members.html b/docs/classclutchlog-members.html
index 0c01984..e01e9f8 100644
--- a/docs/classclutchlog-members.html
+++ b/docs/classclutchlog-members.html
@@ -100,22 +100,24 @@ $(function() {
| info enum value (defined in clutchlog) | clutchlog | |
| level enum name | clutchlog | |
| level_of(const std::string name) | clutchlog | inline |
- | line(std::string line) | clutchlog | inline |
- | locate(const level &stage, const std::string &file, const std::string &func, const size_t line) const | clutchlog | inline |
- | location(const std::string &in_file, const std::string &in_function=".*", const std::string &in_line=".*") | clutchlog | inline |
- | log(const level &stage, const std::string &what, const std::string &file, const std::string &func, size_t line) const | clutchlog | inline |
- | logger() | clutchlog | inlinestatic |
- | note enum value (defined in clutchlog) | clutchlog | |
- | operator=(clutchlog const &)=delete (defined in clutchlog) | clutchlog | |
- | out(std::ostream &out) | clutchlog | inline |
- | out() | clutchlog | inline |
- | progress enum value (defined in clutchlog) | clutchlog | |
- | replace(const std::string &form, const std::string &mark, const std::string &tag) const | clutchlog | inline |
- | replace(const std::string &form, const std::string &mark, const size_t tag) const | clutchlog | inline |
- | style(level stage, FMT... styles) | clutchlog | inline |
- | style(level stage, fmt style) | clutchlog | inline |
- | style(level stage) const | clutchlog | inline |
- | threshold(level l) | clutchlog | inline |
+ | levels() const | clutchlog | inline |
+ | line(std::string line) | clutchlog | inline |
+ | locate(const level &stage, const std::string &file, const std::string &func, const size_t line) const | clutchlog | inline |
+ | location(const std::string &in_file, const std::string &in_function=".*", const std::string &in_line=".*") | clutchlog | inline |
+ | log(const level &stage, const std::string &what, const std::string &file, const std::string &func, size_t line) const | clutchlog | inline |
+ | logger() | clutchlog | inlinestatic |
+ | note enum value (defined in clutchlog) | clutchlog | |
+ | operator=(clutchlog const &)=delete (defined in clutchlog) | clutchlog | |
+ | out(std::ostream &out) | clutchlog | inline |
+ | out() | clutchlog | inline |
+ | progress enum value (defined in clutchlog) | clutchlog | |
+ | replace(const std::string &form, const std::string &mark, const std::string &tag) const | clutchlog | inline |
+ | replace(const std::string &form, const std::string &mark, const size_t tag) const | clutchlog | inline |
+ | style(level stage, FMT... styles) | clutchlog | inline |
+ | style(level stage, fmt style) | clutchlog | inline |
+ | style(level stage) const | clutchlog | inline |
+ | threshold(level l) | clutchlog | inline |
+ | threshold(const std::string &l) | clutchlog | inline |
| threshold() const | clutchlog | inline |
| warning enum value (defined in clutchlog) | clutchlog | |
| xdebug enum value (defined in clutchlog) | clutchlog | |
diff --git a/docs/classclutchlog.html b/docs/classclutchlog.html
index 25ca974..9064078 100644
--- a/docs/classclutchlog.html
+++ b/docs/classclutchlog.html
@@ -109,12 +109,23 @@ std::ostream & | |
|
void | threshold (level l) |
-| | Set the log level below which logs are not printed.
|
+| | Set the log level (below which logs are not printed) with an identifier.
|
| |
+|
+void | threshold (const std::string &l) |
+| | Set the log level (below which logs are not printed) with a string.
|
+| |
|
level | threshold () const |
| | Get the log level below which logs are not printed.
|
| |
+|
+const std::map< std::string, level > & | levels () const |
+| | Get the map of available log levels string representations toward their identifier. */.
|
+| |
+| level | level_of (const std::string name) |
+| | Return the log level tag corresponding to the given pre-configured name. More...
|
+| |
|
void | file (std::string file) |
| | Set the regular expression filtering the file location.
|
@@ -143,9 +154,6 @@ void fmt | style (level stage) const |
| | Get the configured fmt instance of the given log level.
|
| |
-| level | level_of (const std::string name) |
-| | Return the log level tag corresponding to the given pre-configured name. More...
|
-| |
|
|
scope_t | locate (const level &stage, const std::string &file, const std::string &func, const size_t line) const |
diff --git a/docs/clutchlog_8h_source.html b/docs/clutchlog_8h_source.html
index b5de815..082740e 100644
--- a/docs/clutchlog_8h_source.html
+++ b/docs/clutchlog_8h_source.html
@@ -290,14 +290,14 @@ $(function() {
-
+
-
-
-
-
-
-
+
+
+
+
+
+
@@ -424,455 +424,460 @@ $(function() {
-
-
-
-
-
-
-
- 489 const std::string& in_file,
- 490 const std::string& in_function=
".*",
- 491 const std::string& in_line=
".*"
-
-
-
-
-
-
-
- 503 template<
class ... FMT>
-
-
-
-
-
-
-
-
- 518 return ilevel->second;
-
- 520 throw std::out_of_range(
"'" + name +
"' is not a valid log level name");
-
-
-
-
+
+
+
+
+
+
+
+
+ 492 return ilevel->second;
+
+ 494 throw std::out_of_range(
"'" + name +
"' is not a valid log level name");
+
+
+
+
+
+
+
+
+ 507 const std::string& in_file,
+ 508 const std::string& in_function=
".*",
+ 509 const std::string& in_line=
".*"
+
+
+
+
+
+
+
+ 521 template<
class ... FMT>
+
+
+
-
-
-
- 537 #if CLUTCHLOG_HAVE_UNIX_SYSINFO == 1
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
- 558 const std::string&
file,
- 559 const std::string&
func,
-
-
-
-
-
-
-
-
- 568 if(not (scope.stage <=
_stage)) {
-
-
-
-
- 573 #if CLUTCHLOG_HAVE_UNIX_SYSINFO == 1
-
-
-
- 577 void *buffer[max_buffer];
- 578 stack_depth = backtrace(buffer, max_buffer);
- 579 scope.depth = stack_depth;
-
-
-
-
-
-
-
-
- 588 std::ostringstream sline; sline <<
line;
-
-
-
- 592 and std::regex_search(sline.str(),
_in_line);
-
-
- 595 scope.matches = scope.there;
-
-
-
-
-
- 608 const std::string& form,
- 609 const std::string& mark,
- 610 const std::string& tag
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
- 667 const std::regex re(mark);
- 668 return std::regex_replace(form, re, tag);
-
+
+
+
+
+
+ 541 #if CLUTCHLOG_HAVE_UNIX_SYSINFO == 1
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+ 562 const std::string&
file,
+ 563 const std::string&
func,
+
+
+
+
+
+
+
+
+ 572 if(not (scope.stage <=
_stage)) {
+
+
+
+
+ 577 #if CLUTCHLOG_HAVE_UNIX_SYSINFO == 1
+
+
+
+ 581 void *buffer[max_buffer];
+ 582 stack_depth = backtrace(buffer, max_buffer);
+ 583 scope.depth = stack_depth;
+
+
+
+
+
+
+
+
+ 592 std::ostringstream sline; sline <<
line;
+
+
+
+ 596 and std::regex_search(sline.str(),
_in_line);
+
+
+ 599 scope.matches = scope.there;
+
+
+
+
+
+ 612 const std::string& form,
+ 613 const std::string& mark,
+ 614 const std::string& tag
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
-
- 673 const std::string& form,
- 674 const std::string& mark,
-
-
-
- 678 std::ostringstream stag; stag << tag;
- 679 return replace(form, mark, stag.str());
-
-
-
-
- 685 const std::string& what,
-
- 687 const std::string& name,
-
-
- 690 const std::string&
file,
- 691 const std::string&
func,
-
-
-
-
-
-
-
-
-
-
-
-
-
- 705 std::string letter(1,
_level_word.at(stage).at(0));
-
+ 671 const std::regex re(mark);
+ 672 return std::regex_replace(form, re, tag);
+
+
+
+ 677 const std::string& form,
+ 678 const std::string& mark,
+
+
+
+ 682 std::ostringstream stag; stag << tag;
+ 683 return replace(form, mark, stag.str());
+
+
+
+
+ 689 const std::string& what,
+
+ 691 const std::string& name,
+
+
+ 694 const std::string&
file,
+ 695 const std::string&
func,
+
+
+
+
+
+
+
+
+
+
+
- 708 #if CLUTCHLOG_HAVE_UNIX_SYSINFO == 1
-
-
+
+ 709 std::string letter(1,
_level_word.at(stage).at(0));
+
- 712 std::ostringstream chevrons;
-
- 714 chevrons << _depth_mark;
-
-
-
-
-
-
-
-
-
- 725 const std::string& what,
- 726 const std::string&
file,
const std::string&
func,
size_t line
-
-
-
-
-
- 732 #if CLUTCHLOG_HAVE_UNIX_SYSINFO == 1
-
-
-
-
-
+ 712 #if CLUTCHLOG_HAVE_UNIX_SYSINFO == 1
+
+
+
+ 716 std::ostringstream chevrons;
+
+ 718 chevrons << _depth_mark;
+
+
+
+
+
+
+
+
+
+ 729 const std::string& what,
+ 730 const std::string&
file,
const std::string&
func,
size_t line
+
+
+
+
+
+ 736 #if CLUTCHLOG_HAVE_UNIX_SYSINFO == 1
+
-
-
-
-
-
-
-
-
-
-
- 750 const In container_begin,
const In container_end,
- 751 const std::string&
file,
const std::string&
func,
size_t line,
- 752 const std::string& filename_template =
"dump_{n}.dat",
-
-
-
-
-
-
- 759 const std::string tag =
"\\{n\\}";
- 760 const std::regex re(tag);
- 761 std::string outfile =
"";
-
-
- 764 if(std::regex_search(filename_template, re)) {
-
-
-
- 768 outfile =
replace(filename_template, tag, n);
-
- 770 }
while( fs::exists( outfile ) );
-
-
-
- 774 outfile = filename_template;
-
-
- 777 std::ofstream fd(outfile);
-
-
- 780 #if CLUTCHLOG_HAVE_UNIX_SYSINFO == 1
-
-
-
-
-
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+ 754 const In container_begin,
const In container_end,
+ 755 const std::string&
file,
const std::string&
func,
size_t line,
+ 756 const std::string& filename_template =
"dump_{n}.dat",
+
+
+
+
+
+
+ 763 const std::string tag =
"\\{n\\}";
+ 764 const std::regex re(tag);
+ 765 std::string outfile =
"";
+
+
+ 768 if(std::regex_search(filename_template, re)) {
+
+
+
+ 772 outfile =
replace(filename_template, tag, n);
+
+ 774 }
while( fs::exists( outfile ) );
+
+
+
+ 778 outfile = filename_template;
+
+
+ 781 std::ofstream fd(outfile);
+
+
+ 784 #if CLUTCHLOG_HAVE_UNIX_SYSINFO == 1
+
-
-
-
-
-
- 792 std::copy(container_begin, container_end,
- 793 std::ostream_iterator<typename In::value_type>(fd, sep.c_str()));
-
-
-
-
+
+
+
+
+
+
+
+
+
+ 796 std::copy(container_begin, container_end,
+ 797 std::ostream_iterator<typename In::value_type>(fd, sep.c_str()));
-
-
- 804 #else // not WITH_CLUTCHLOG
+
+
+
+
+
-
-
-
-
+ 808 #else // not WITH_CLUTCHLOG
+
-
-
- 813 #pragma GCC diagnostic push
- 814 #pragma GCC diagnostic ignored "-Wreturn-type"
-
-
-
-
- 819 enum level {critical=0, error=1, warning=2, progress=3, note=4, info=5, debug=6, xdebug=7};
-
-
- 822 enum class fg { black, red, green, yellow, blue, magenta, cyan, white, none }
fore;
- 823 enum class bg { black, red, green, yellow, blue, magenta, cyan, white, none }
back;
- 824 enum class typo { reset, bold, underline, inverse, none }
style;
-
-
-
-
-
-
-
-
- 833 std::ostream&
print_on(std::ostream&)
const { }
-
- 835 friend std::ostream&
operator<<(std::ostream&,
const fmt&) { }
- 836 std::string
operator()(
const std::string&)
const { }
-
-
-
- 840 void operator=(
clutchlog const&) =
delete;
-
-
-
-
-
-
-
-
-
-
-
-
- 853 void format(
const std::string&) {}
- 854 std::string
format()
const {}
-
-
-
-
- 859 void out(std::ostream&) {}
- 860 std::ostream&
out() {}
-
- 862 #if CLUTCHLOG_HAVE_UNIX_SYSINFO == 1
- 863 void depth(
size_t) {}
- 864 size_t depth()
const {}
+
+
+
+
+
+
+ 817 #pragma GCC diagnostic push
+ 818 #pragma GCC diagnostic ignored "-Wreturn-type"
+
+
+
+
+ 823 enum level {critical=0, error=1, warning=2, progress=3, note=4, info=5, debug=6, xdebug=7};
+
+
+ 826 enum class fg { black, red, green, yellow, blue, magenta, cyan, white, none }
fore;
+ 827 enum class bg { black, red, green, yellow, blue, magenta, cyan, white, none }
back;
+ 828 enum class typo { reset, bold, underline, inverse, none }
style;
+
+
+
+
+
+
+
+
+ 837 std::ostream&
print_on(std::ostream&)
const {}
+
+ 839 friend std::ostream&
operator<<(std::ostream&,
const fmt&) {}
+ 840 std::string
operator()(
const std::string&)
const {}
+
+
+
+ 844 void operator=(
clutchlog const&) =
delete;
+
+
+
+
+
+
+
+
+
+
+
+
+ 857 void format(
const std::string&) {}
+ 858 std::string
format()
const {}
+
+
+
+
+ 863 void out(std::ostream&) {}
+ 864 std::ostream&
out() {}
- 866 void depth_mark(std::string) {}
- 867 std::string depth_mark()
const {}
-
+ 866 #if CLUTCHLOG_HAVE_UNIX_SYSINFO == 1
+ 867 void depth(
size_t) {}
+ 868 size_t depth()
const {}
-
-
-
- 873 void file(std::string) {}
- 874 void func(std::string) {}
- 875 void line(std::string) {}
-
- 877 #pragma GCC diagnostic push
- 878 #pragma GCC diagnostic ignored "-Wunused-parameter"
-
-
- 881 const std::string& in_function=
".*",
- 882 const std::string& in_line=
".*"
-
-
- 885 #pragma GCC diagnostic pop
-
-
-
-
-
-
-
-
-
-
-
-
+ 870 void depth_mark(std::string) {}
+ 871 std::string depth_mark()
const {}
+
+
+
+
+
+ 877 const std::map<std::string,level>
levels()
const {};
+
+
+ 880 void file(std::string) {}
+ 881 void func(std::string) {}
+ 882 void line(std::string) {}
+
+ 884 #pragma GCC diagnostic push
+ 885 #pragma GCC diagnostic ignored "-Wunused-parameter"
+
+
+ 888 const std::string& in_function=
".*",
+ 889 const std::string& in_line=
".*"
+
+
+ 892 #pragma GCC diagnostic pop
+
+
+
+
+
-
-
-
-
-
-
-
-
-
-
-
-
-
+
+
+
+
+
+
+
+
+
+
+
+
+
-
-
-
-
-
-
-
-
-
-
-
- 924 const std::string&,
const std::string&,
size_t
-
-
-
-
-
-
-
- 932 const std::string&,
const std::string&,
size_t,
-
-
-
-
-
- 938 #pragma GCC diagnostic pop
- 939 #endif // WITH_CLUTCHLOG
-
- 941 #endif // __CLUTCHLOG_H__
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+ 930 const std::string&,
const std::string&,
size_t
+
+
+
+
+
+
+
+ 938 const std::string&,
const std::string&,
size_t,
+
+
+
+
+
+ 944 #pragma GCC diagnostic pop
+ 945 #endif // WITH_CLUTCHLOG
+
+ 947 #endif // __CLUTCHLOG_H__
-void file(std::string file)
Set the regular expression filtering the file location.
Definition: clutchlog.h:481
+void file(std::string file)
Set the regular expression filtering the file location.
Definition: clutchlog.h:499
#define CLUTCHDUMP_DEFAULT_FORMAT
Compile-time default format of the comment line in file dump.
Definition: clutchlog.h:187
fg
Foreground color codes.
Definition: clutchlog.h:250
static std::string dump_default_format
Default format of the comment line in file dump.
Definition: clutchlog.h:191
+const std::map< std::string, level > & levels() const
Get the map of available log levels string representations toward their identifier....
Definition: clutchlog.h:482
void out(std::ostream &out)
Set the output stream on which to print.
Definition: clutchlog.h:459
fmt()
 Empty constructor, only useful for a no-op formatter.
Definition: clutchlog.h:285
static clutchlog & logger()
Get the logger instance.
Definition: clutchlog.h:226
-void line(std::string line)
Set the regular expression filtering the line location.
Definition: clutchlog.h:485
+void line(std::string line)
Set the regular expression filtering the line location.
Definition: clutchlog.h:503
void format_comment(const std::string &format)
Set the template string for dumps.
Definition: clutchlog.h:454
typo
Typographic style codes.
Definition: clutchlog.h:276
#define CLUTCHDUMP_DEFAULT_SEP
Compile-time default item separator for dump.
Definition: clutchlog.h:195
static std::string default_depth_mark
Default mark for stack depth.
Definition: clutchlog.h:205
#define CLUTCHLOG_DEFAULT_FORMAT
Compile-time default format of the messages.
Definition: clutchlog.h:176
std::string format() const
Get the template string.
Definition: clutchlog.h:451
-void log(const level &stage, const std::string &what, const std::string &file, const std::string &func, size_t line) const
Print a log message IF the location matches the given one.
Definition: clutchlog.h:723
-level level_of(const std::string name)
Return the log level tag corresponding to the given pre-configured name.
Definition: clutchlog.h:514
+void log(const level &stage, const std::string &what, const std::string &file, const std::string &func, size_t line) const
Print a log message IF the location matches the given one.
Definition: clutchlog.h:727
+level level_of(const std::string name)
Return the log level tag corresponding to the given pre-configured name.
Definition: clutchlog.h:488
std::string _format_dump
Current format of the file output.
Definition: clutchlog.h:419
std::string operator()(const std::string &msg) const
Format the given string with the currently encoded format.
Definition: clutchlog.h:344
-std::string format(std::string format, const std::string &what, const level &stage, const std::string &file, const std::string &func, const size_t line) const
Substitute all tags in the format string with the corresponding information and apply the style corre...
Definition: clutchlog.h:683
+std::string format(std::string format, const std::string &what, const level &stage, const std::string &file, const std::string &func, const size_t line) const
Substitute all tags in the format string with the corresponding information and apply the style corre...
Definition: clutchlog.h:687
std::string _format_log
Current format of the standard output.
Definition: clutchlog.h:417
level
Available log levels.
Definition: clutchlog.h:233
-level stage
Current log level.
Definition: clutchlog.h:536
+level stage
Current log level.
Definition: clutchlog.h:540
#define CLUTCHLOG_DEFAULT_DEPTH_MARK
Compile-time default mark for stack depth.
Definition: clutchlog.h:202
friend std::ostream & operator<<(std::ostream &os, const fmt &fmt)
Output stream overload.
Definition: clutchlog.h:329
std::map< level, fmt > _level_fmt
Dictionary of level identifier to their format.
Definition: clutchlog.h:415
@@ -883,34 +888,35 @@ $(function() {
std::string format_comment() const
Get the template string for dumps.
Definition: clutchlog.h:456
#define CLUTCHLOG_STRIP_CALLS
Compile-time number of call stack levels to remove from depth display by default.
Definition: clutchlog.h:209
std::ostream * _out
Standard output.
Definition: clutchlog.h:421
-void func(std::string func)
Set the regular expression filtering the function location.
Definition: clutchlog.h:483
-void location(const std::string &in_file, const std::string &in_function=".*", const std::string &in_line=".*")
Set the regular expressions filtering the location.
Definition: clutchlog.h:488
-void dump(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=dump_default_sep) const
Dump a serializable container after a comment line with log information.
Definition: clutchlog.h:748
-std::string replace(const std::string &form, const std::string &mark, const size_t tag) const
Replace mark by tag in form, converting tag to its string representation first.
Definition: clutchlog.h:672
+void func(std::string func)
Set the regular expression filtering the function location.
Definition: clutchlog.h:501
+void location(const std::string &in_file, const std::string &in_function=".*", const std::string &in_line=".*")
Set the regular expressions filtering the location.
Definition: clutchlog.h:506
+void dump(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=dump_default_sep) const
Dump a serializable container after a comment line with log information.
Definition: clutchlog.h:752
+std::string replace(const std::string &form, const std::string &mark, const size_t tag) const
Replace mark by tag in form, converting tag to its string representation first.
Definition: clutchlog.h:676
Color and style formatter for ANSI terminal escape sequences.
Definition: clutchlog.h:247
std::regex _in_file
Current file location filter.
Definition: clutchlog.h:431
std::ostream & out()
Get the output stream on which to print.
Definition: clutchlog.h:461
-std::string replace(const std::string &form, const std::string &mark, const std::string &tag) const
Replace mark by tag in form.
Definition: clutchlog.h:607
+std::string replace(const std::string &form, const std::string &mark, const std::string &tag) const
Replace mark by tag in form.
Definition: clutchlog.h:611
static unsigned int default_strip_calls
Number of call stack levels to remove from depth display by default.
Definition: clutchlog.h:212
static std::string default_format
Default format of the messages.
Definition: clutchlog.h:180
enum clutchlog::fmt::fg fore
Foreground color.
-bool there
Location is compatible.
Definition: clutchlog.h:542
-Structure holding a location matching.
Definition: clutchlog.h:532
+void threshold(const std::string &l)
Set the log level (below which logs are not printed) with a string.
Definition: clutchlog.h:478
+bool there
Location is compatible.
Definition: clutchlog.h:546
+Structure holding a location matching.
Definition: clutchlog.h:536
std::regex _in_func
Current function location filter.
Definition: clutchlog.h:433
-void threshold(level l)
Set the log level below which logs are not printed.
Definition: clutchlog.h:476
-void style(level stage, fmt style)
Set the style (color and typo) of the given log level, passing a fmt instance.
Definition: clutchlog.h:506
+void threshold(level l)
Set the log level (below which logs are not printed) with an identifier.
Definition: clutchlog.h:476
+void style(level stage, fmt style)
Set the style (color and typo) of the given log level, passing a fmt instance.
Definition: clutchlog.h:524
const std::map< level, std::string > _level_word
Dictionary of level identifier to their string representation.
Definition: clutchlog.h:411
-scope_t locate(const level &stage, const std::string &file, const std::string &func, const size_t line) const
Gather information on the current location of the call.
Definition: clutchlog.h:556
-bool matches
Everything is compatible.
Definition: clutchlog.h:534
+scope_t locate(const level &stage, const std::string &file, const std::string &func, const size_t line) const
Gather information on the current location of the call.
Definition: clutchlog.h:560
+bool matches
Everything is compatible.
Definition: clutchlog.h:538
static std::string dump_default_sep
Default item separator for dump.
Definition: clutchlog.h:198
-level threshold() const
Get the log level below which logs are not printed.
Definition: clutchlog.h:478
+level threshold() const
Get the log level below which logs are not printed.
Definition: clutchlog.h:480
std::ostream & print_on(std::ostream &os) const
Print the currently encoded format escape code on the given output stream.
Definition: clutchlog.h:299
std::map< std::string, level > _word_level
Dictionary of level string to their identifier.
Definition: clutchlog.h:413
-void style(level stage, FMT... styles)
Set the style (color and typo) of the given log level.
Definition: clutchlog.h:504
-scope_t()
Constructor.
Definition: clutchlog.h:544
+void style(level stage, FMT... styles)
Set the style (color and typo) of the given log level.
Definition: clutchlog.h:522
+scope_t()
Constructor.
Definition: clutchlog.h:548
#define CLUTCHLOG_HAVE_UNIX_SYSINFO
POSIX headers necessary for stack depth management are available.
Definition: clutchlog.h:32
Definition: clutchlog.h:165
-fmt style(level stage) const
Get the configured fmt instance of the given log level.
Definition: clutchlog.h:508
+fmt style(level stage) const
Get the configured fmt instance of the given log level.
Definition: clutchlog.h:526
bg
Background color codes.
Definition: clutchlog.h:263
enum clutchlog::fmt::bg back
Background color.
diff --git a/docs/functions.html b/docs/functions.html
index 96724b1..02e0d5d 100644
--- a/docs/functions.html
+++ b/docs/functions.html
@@ -165,6 +165,9 @@ $(function() {
level_of()
: clutchlog
+levels()
+: clutchlog
+
line()
: clutchlog
diff --git a/docs/functions_func.html b/docs/functions_func.html
index 553b42d..ec981ba 100644
--- a/docs/functions_func.html
+++ b/docs/functions_func.html
@@ -84,6 +84,9 @@ $(function() {
level_of()
: clutchlog
+levels()
+: clutchlog
+
line()
: clutchlog
diff --git a/docs/group__UseMacros.html b/docs/group__UseMacros.html
index e8788ff..89ba5f5 100644
--- a/docs/group__UseMacros.html
+++ b/docs/group__UseMacros.html
@@ -353,12 +353,23 @@ std::ostream & | |
|
void | clutchlog::threshold (level l) |
-| | Set the log level below which logs are not printed.
|
+| | Set the log level (below which logs are not printed) with an identifier.
|
| |
+|
+void | clutchlog::threshold (const std::string &l) |
+| | Set the log level (below which logs are not printed) with a string.
|
+| |
|
level | clutchlog::threshold () const |
| | Get the log level below which logs are not printed.
|
| |
+|
+const std::map< std::string, level > & | clutchlog::levels () const |
+| | Get the map of available log levels string representations toward their identifier. */.
|
+| |
+| level | clutchlog::level_of (const std::string name) |
+| | Return the log level tag corresponding to the given pre-configured name. More...
|
+| |
|
void | clutchlog::file (std::string file) |
| | Set the regular expression filtering the file location.
|
@@ -387,9 +398,6 @@ void fmt | clutchlog::style (level stage) const |
| | Get the configured fmt instance of the given log level.
|
| |
-| level | clutchlog::level_of (const std::string name) |
-| | Return the log level tag corresponding to the given pre-configured name. More...
|
-| |
|
@@ -819,7 +827,7 @@ template<class ... FMT>
static clutchlog & logger()
Get the logger instance.
Definition: clutchlog.h:226
#define CLUTCHDUMP_DEFAULT_SEP
Compile-time default item separator for dump.
Definition: clutchlog.h:195
-void log(const level &stage, const std::string &what, const std::string &file, const std::string &func, size_t line) const
Print a log message IF the location matches the given one.
Definition: clutchlog.h:723
+void log(const level &stage, const std::string &what, const std::string &file, const std::string &func, size_t line) const
Print a log message IF the location matches the given one.
Definition: clutchlog.h:727
#define CLUTCHLOC
Handy shortcuts to location.
Definition: clutchlog.h:65
Color and style formatter for ANSI terminal escape sequences.
Definition: clutchlog.h:247
diff --git a/docs/index.html b/docs/index.html
index 222c5d4..a2c4991 100644
--- a/docs/index.html
+++ b/docs/index.html
@@ -70,17 +70,17 @@ $(function() {
- Features
- Example
- Rationale
-- API documentation
@@ -107,7 +107,7 @@ Example
Adding a message is a simple as calling a macro (which is declutched in Debug build type, when NDEBUG is not defined):
CLUTCHLOG(info,
"matrix size: " << m <<
"x" << n);
To configure the display, you indicate the three types of locations, for example in your main function:
log.depth(2);
-
log.threshold(clutchlog::level::info);
+
log.threshold("Info");
log.file("algebra/.*");
log.func("(mul|add|sub|div)");
For more detailled examples, see the "API documentation" section below and the tests directory.
@@ -120,6 +120,20 @@ Rationale
API documentation
+Log level semantics
+Log levels use a classical semantics for a human skilled in the art, in decreasing order of importance:
+
+- Critical: an error that cannot be recovered. For instance, something which will make a server stop right here.
+- Error: an error that invalidates a function, but may still be recovered. For example, a bad user input that will make a server reset its state, but not crash.
+- Warning: something that is strange, but is probably legit. For example a default parameter is set because the user forgot to indicate its preference.
+- Progress: the state at which computation currently is.
+- Note: some state worth noting to understand what's going on.
+- Info: any information that would help ensuring that everything is going well.
+- Debug: data that would help debugging the program if there was a bug later on.
+- XDebug: debugging information that would be heavy to read.
+
+Note: the log levels constants are lower case (for example: clutchlog::level::xdebug), but their string representation is not (e.g. "XDebug", this should be taken into account when using threshold or level_of).
+
Calls
The main entrypoint is the CLUTCHLOG macro, which takes the desired log level and message. The message can be anything that can be output in an ostringstream.
@@ -140,7 +154,7 @@ Calls
Note that if you pass a file name without the {n} tag, the file will be overwritten as is.
-
+
Location filtering
To configure the global behaviour of the logger, you must first get a reference on its (singleton) instance:
One can configure the location(s) at which messages should actually be logged:
log.depth(3);
@@ -150,9 +164,9 @@ Location filtering
log.func(".*");
log.line(".*");
A shortcut function can be used to filter all at once:
log.location(file, func, line);
-
Strings may be used to set up the threshold, using level_of:
log.threshold( log.level_of("XDebug") );
+
Strings may be used to set up the threshold:
Note that the case of the log levels strings matters (see below).
-
+
Output Configuration
The output stream can be configured using the out method:
The format of the messages can be defined with the format method, passing a string with standardized tags surrounded by {}:
log.format("{msg}");
@@ -172,7 +186,7 @@ Output Configuration
The default format of the first line of comment added with the dump macro is "# [{name}] {level} in {func} (at depth {depth}) @ {file}:{line}". It can be edited with the format_comment method. If it is set to an empty string, then no comment line is added. The default can be modified at compile time with CLUTCHDUMP_DEFAULT_FORMAT. By default, the separator between items in the container is a new line. To change this behaviour, you can change CLUTCHDUMP_DEFAULT_SEP or call the low-level dump method.
The mark used with the {depth_marks} tag can be configured with the depth_mark method, and its default with the CLUTCHLOG_DEFAULT_DEPTH_MARK macro:
By default, clutchlog removes 5 levels of the calls stack, so that your main entrypoint corresponds to a depth of zero. You can change this behaviour by defining the CLUTCHLOG_STRIP_CALLS macro.
-
+
Output style
The output can be colored differently depending on the log level.
log.style(clutchlog::level::error,
@@ -218,7 +232,7 @@ Output style
<< fmt(fmt::typo::reset) << " {msg}" << std::endl;
log.format(format.str());
Note: messages at the "critical", "error" and "warning" log levels are colored by default. You may want to set their style to none if you want to stay in control of inserted colors in the format template.
-
+
Disabled calls
By default, clutchlog is always enabled if the NDEBUG preprocessor variable is not defined (this variable is set by CMake in build types that differs from Debug).
You can however force clutchlog to be enabled in any build type by setting the WITH_CLUTCHLOG preprocessor variable.
@@ -227,39 +241,26 @@ Disabled calls
#define CLUTCHLOG_DEFAULT_DEPTH_BUILT_NODEBUG clutchlog::level::xdebug
Note that allowing a log level does not mean that it will actually output something. If the configured log level at runtime is lower than the log level of the message, it will still not be printed.
This behavior intend to remove as many conditional statements as possible when not debugging, without having to use preprocessor guards around calls to clutchlog, thus saving run time at no readability cost.
-
+
Low-level API
All configuration setters have a getters counterpart, with the same name but taking no parameter, for example:
std::string mark = log.depth_mark();
To control more precisely the logging, one can use the low-level log method:
log.log(clutchlog::level::xdebug, "hello world", "main.cpp", "main", 122);
A helper macro can helps to fill in the location with the actual one, as seen by the compiler:
log.log(clutchlog::level::xdebug,
"hello world",
CLUTCHLOC);
A similar dump method exists:
log.dump(clutchlog::level::xdebug, cont.begin(), cont.end(),
CLUTCHLOC,
"dumped_{n}.dat",
"\n");
log.dump(clutchlog::level::xdebug, cont.begin(), cont.end(), "main.cpp", "main", 122, "dumped.dat", "\n\n");
-
+
You can access the identifier of log levels with level_of:
log.threshold( log.level_of("XDebug") );
+
(De)clutch any function call
The CLUTHFUNC macro allows to wrap any function within the current logger.
For instance, this can be useful if you want to (de)clutch calls to asserts. To do that, just declare your own macro:
#define ASSERT(...) { CLUTCHFUNC(error, assert, __VA_ARGS__) }
Thus, any call like ASSERT(x > 3); will be declutchable with the same configuration than a call to CLUTCHLOG.
-
+
(De)clutch any code section
The CLUTCHCODE macro allows to wrap any code within the current logger.
For instance:
std::clog << "We are clutched!\n";
);
-
-Log level semantics
-Log levels use a classical semantics for a human skilled in the art, in decreasing order of importance:
-
-- Critical: an error that cannot be recovered. For instance, something which will make a server stop right here.
-- Error: an error that invalidates a function, but may still be recovered. For example, a bad user input that will make a server reset its state, but not crash.
-- Warning: something that is strange, but is probably legit. For example a default parameter is set because the user forgot to indicate its preference.
-- Progress: the state at which computation currently is.
-- Note: some state worth noting to understand what's going on.
-- Info: any information that would help ensuring that everything is going well.
-- Debug: data that would help debugging the program if there was a bug later on.
-- XDebug: debugging information that would be heavy to read.
-
-Note: the log levels constants are lower case (for example: clutchlog::level::xdebug), but their string representation is not (e.g. "XDebug", this should be taken into account when using level_of).
-
+
Limitations
System-dependent stack depth
Because the call stack depth and program name access are system-dependent, the features relying on the depth of the call stack and the display of the program name are only available for operating systems having the following headers: execinfo.h, stdlib.h and libgen.h (so far, tested with Linux).
diff --git a/docs/search/all_6.js b/docs/search/all_6.js
index 5821355..d071963 100644
--- a/docs/search/all_6.js
+++ b/docs/search/all_6.js
@@ -2,9 +2,10 @@ var searchData=
[
['level_43',['level',['../group__UseMacros.html#ga10fd25a1b51c8c95bd6d876ce1b4b928',1,'clutchlog']]],
['level_5fof_44',['level_of',['../group__UseMacros.html#gacebed8c9df9204f22bf8488e62e1cedd',1,'clutchlog']]],
- ['line_45',['line',['../group__UseMacros.html#gaa26c6b81ebaeb9e9daa3457e3a3d17c9',1,'clutchlog']]],
- ['locate_46',['locate',['../group__UseMacros.html#ga4ebdfcded6c56262676bf6926d63fc96',1,'clutchlog']]],
- ['location_47',['location',['../group__UseMacros.html#ga6666106b9e5c239b6ae5e0d1091648e3',1,'clutchlog']]],
- ['log_48',['log',['../group__UseMacros.html#ga23dbb98f0d3c5cc21c232cde16cf317a',1,'clutchlog']]],
- ['logger_49',['logger',['../group__UseMacros.html#gacfaceb77da01503b432644a3efaee4fa',1,'clutchlog']]]
+ ['levels_45',['levels',['../group__UseMacros.html#gaff3aa09fb60f7d6dc688c028d3834d8a',1,'clutchlog']]],
+ ['line_46',['line',['../group__UseMacros.html#gaa26c6b81ebaeb9e9daa3457e3a3d17c9',1,'clutchlog']]],
+ ['locate_47',['locate',['../group__UseMacros.html#ga4ebdfcded6c56262676bf6926d63fc96',1,'clutchlog']]],
+ ['location_48',['location',['../group__UseMacros.html#ga6666106b9e5c239b6ae5e0d1091648e3',1,'clutchlog']]],
+ ['log_49',['log',['../group__UseMacros.html#ga23dbb98f0d3c5cc21c232cde16cf317a',1,'clutchlog']]],
+ ['logger_50',['logger',['../group__UseMacros.html#gacfaceb77da01503b432644a3efaee4fa',1,'clutchlog']]]
];
diff --git a/docs/search/all_7.js b/docs/search/all_7.js
index 76b9182..f766517 100644
--- a/docs/search/all_7.js
+++ b/docs/search/all_7.js
@@ -1,5 +1,5 @@
var searchData=
[
- ['main_20class_50',['Main class',['../group__Main.html',1,'']]],
- ['matches_51',['matches',['../group__UseMacros.html#gae6c0e4ed20db797124ed1e5faa033ad9',1,'clutchlog::scope_t']]]
+ ['main_20class_51',['Main class',['../group__Main.html',1,'']]],
+ ['matches_52',['matches',['../group__UseMacros.html#gae6c0e4ed20db797124ed1e5faa033ad9',1,'clutchlog::scope_t']]]
];
diff --git a/docs/search/all_8.js b/docs/search/all_8.js
index 8584858..9bb547b 100644
--- a/docs/search/all_8.js
+++ b/docs/search/all_8.js
@@ -1,6 +1,6 @@
var searchData=
[
- ['operator_28_29_52',['operator()',['../group__UseMacros.html#gafeaedd18298498d1dcfcc15f5f17ac3c',1,'clutchlog::fmt']]],
- ['operator_3c_3c_53',['operator<<',['../group__UseMacros.html#ga96849ba427feac3a2eeaa1165e3845da',1,'clutchlog::fmt']]],
- ['out_54',['out',['../group__UseMacros.html#ga7fd7c7bd3668c537061c314a619a336d',1,'clutchlog::out(std::ostream &out)'],['../group__UseMacros.html#ga6c6ab42a1df147e6c2d115bc36ec8266',1,'clutchlog::out()']]]
+ ['operator_28_29_53',['operator()',['../group__UseMacros.html#gafeaedd18298498d1dcfcc15f5f17ac3c',1,'clutchlog::fmt']]],
+ ['operator_3c_3c_54',['operator<<',['../group__UseMacros.html#ga96849ba427feac3a2eeaa1165e3845da',1,'clutchlog::fmt']]],
+ ['out_55',['out',['../group__UseMacros.html#ga7fd7c7bd3668c537061c314a619a336d',1,'clutchlog::out(std::ostream &out)'],['../group__UseMacros.html#ga6c6ab42a1df147e6c2d115bc36ec8266',1,'clutchlog::out()']]]
];
diff --git a/docs/search/all_9.js b/docs/search/all_9.js
index fba126e..db2ed01 100644
--- a/docs/search/all_9.js
+++ b/docs/search/all_9.js
@@ -1,4 +1,4 @@
var searchData=
[
- ['print_5fon_55',['print_on',['../group__UseMacros.html#ga0b607e343b6813b99eafca1fdfec9cd0',1,'clutchlog::fmt']]]
+ ['print_5fon_56',['print_on',['../group__UseMacros.html#ga0b607e343b6813b99eafca1fdfec9cd0',1,'clutchlog::fmt']]]
];
diff --git a/docs/search/all_a.js b/docs/search/all_a.js
index 91704b4..35db973 100644
--- a/docs/search/all_a.js
+++ b/docs/search/all_a.js
@@ -1,4 +1,4 @@
var searchData=
[
- ['replace_56',['replace',['../group__UseMacros.html#ga972f895c70edc335f3018a2c8971d59e',1,'clutchlog::replace(const std::string &form, const std::string &mark, const std::string &tag) const'],['../group__UseMacros.html#gae90d5a1a428587ad67b38b2ea4ca9fa2',1,'clutchlog::replace(const std::string &form, const std::string &mark, const size_t tag) const']]]
+ ['replace_57',['replace',['../group__UseMacros.html#ga972f895c70edc335f3018a2c8971d59e',1,'clutchlog::replace(const std::string &form, const std::string &mark, const std::string &tag) const'],['../group__UseMacros.html#gae90d5a1a428587ad67b38b2ea4ca9fa2',1,'clutchlog::replace(const std::string &form, const std::string &mark, const size_t tag) const']]]
];
diff --git a/docs/search/all_b.js b/docs/search/all_b.js
index 128e735..dee62fd 100644
--- a/docs/search/all_b.js
+++ b/docs/search/all_b.js
@@ -1,6 +1,6 @@
var searchData=
[
- ['scope_5ft_57',['scope_t',['../structclutchlog_1_1scope__t.html',1,'clutchlog::scope_t'],['../group__UseMacros.html#ga0f1d865ffcf17f215e5559cdd2690572',1,'clutchlog::scope_t::scope_t()']]],
- ['stage_58',['stage',['../group__UseMacros.html#gadcca6846ff90d436c61861db85917744',1,'clutchlog::scope_t']]],
- ['style_59',['style',['../group__UseMacros.html#ga2bb0fde65fcd264393e102314dd1610b',1,'clutchlog::fmt::style()'],['../group__UseMacros.html#gac3ec55057b9c734b66f169bf43dbd591',1,'clutchlog::style(level stage, FMT... styles)'],['../group__UseMacros.html#gad1cfa9945c3f7f98fe8ce724c627d0d6',1,'clutchlog::style(level stage, fmt style)'],['../group__UseMacros.html#ga4831f44fd5ade102e57320632095934d',1,'clutchlog::style(level stage) const']]]
+ ['scope_5ft_58',['scope_t',['../structclutchlog_1_1scope__t.html',1,'clutchlog::scope_t'],['../group__UseMacros.html#ga0f1d865ffcf17f215e5559cdd2690572',1,'clutchlog::scope_t::scope_t()']]],
+ ['stage_59',['stage',['../group__UseMacros.html#gadcca6846ff90d436c61861db85917744',1,'clutchlog::scope_t']]],
+ ['style_60',['style',['../group__UseMacros.html#ga2bb0fde65fcd264393e102314dd1610b',1,'clutchlog::fmt::style()'],['../group__UseMacros.html#gac3ec55057b9c734b66f169bf43dbd591',1,'clutchlog::style(level stage, FMT... styles)'],['../group__UseMacros.html#gad1cfa9945c3f7f98fe8ce724c627d0d6',1,'clutchlog::style(level stage, fmt style)'],['../group__UseMacros.html#ga4831f44fd5ade102e57320632095934d',1,'clutchlog::style(level stage) const']]]
];
diff --git a/docs/search/all_c.js b/docs/search/all_c.js
index a37b64f..53bfb99 100644
--- a/docs/search/all_c.js
+++ b/docs/search/all_c.js
@@ -1,6 +1,6 @@
var searchData=
[
- ['there_60',['there',['../group__UseMacros.html#ga7918e55cd3bac1bd30c69b8c711387ff',1,'clutchlog::scope_t']]],
- ['threshold_61',['threshold',['../group__UseMacros.html#ga3cb0e4f43a4cadf1966001ad7c9861f4',1,'clutchlog::threshold(level l)'],['../group__UseMacros.html#gab45287cc9c14217904a13aff49573732',1,'clutchlog::threshold() const']]],
- ['typo_62',['typo',['../group__UseMacros.html#ga932f47b78fb7b10590d5613a1c4eab89',1,'clutchlog::fmt']]]
+ ['there_61',['there',['../group__UseMacros.html#ga7918e55cd3bac1bd30c69b8c711387ff',1,'clutchlog::scope_t']]],
+ ['threshold_62',['threshold',['../group__UseMacros.html#ga3cb0e4f43a4cadf1966001ad7c9861f4',1,'clutchlog::threshold(level l)'],['../group__UseMacros.html#ga7a7738eaad114bfa870121412fe23ad9',1,'clutchlog::threshold(const std::string &l)'],['../group__UseMacros.html#gab45287cc9c14217904a13aff49573732',1,'clutchlog::threshold() const']]],
+ ['typo_63',['typo',['../group__UseMacros.html#ga932f47b78fb7b10590d5613a1c4eab89',1,'clutchlog::fmt']]]
];
diff --git a/docs/search/classes_0.js b/docs/search/classes_0.js
index fe1f9db..c4d615a 100644
--- a/docs/search/classes_0.js
+++ b/docs/search/classes_0.js
@@ -1,4 +1,4 @@
var searchData=
[
- ['clutchlog_64',['clutchlog',['../classclutchlog.html',1,'']]]
+ ['clutchlog_65',['clutchlog',['../classclutchlog.html',1,'']]]
];
diff --git a/docs/search/classes_1.js b/docs/search/classes_1.js
index c84d0f6..f0161ee 100644
--- a/docs/search/classes_1.js
+++ b/docs/search/classes_1.js
@@ -1,4 +1,4 @@
var searchData=
[
- ['fmt_65',['fmt',['../classclutchlog_1_1fmt.html',1,'clutchlog']]]
+ ['fmt_66',['fmt',['../classclutchlog_1_1fmt.html',1,'clutchlog']]]
];
diff --git a/docs/search/classes_2.js b/docs/search/classes_2.js
index 621aa8d..c6d1e9f 100644
--- a/docs/search/classes_2.js
+++ b/docs/search/classes_2.js
@@ -1,4 +1,4 @@
var searchData=
[
- ['scope_5ft_66',['scope_t',['../structclutchlog_1_1scope__t.html',1,'clutchlog']]]
+ ['scope_5ft_67',['scope_t',['../structclutchlog_1_1scope__t.html',1,'clutchlog']]]
];
diff --git a/docs/search/enums_0.js b/docs/search/enums_0.js
index f857616..03af96d 100644
--- a/docs/search/enums_0.js
+++ b/docs/search/enums_0.js
@@ -1,4 +1,4 @@
var searchData=
[
- ['bg_109',['bg',['../group__UseMacros.html#ga1cf3e27e4041250ffea0a6d58010da1e',1,'clutchlog::fmt']]]
+ ['bg_111',['bg',['../group__UseMacros.html#ga1cf3e27e4041250ffea0a6d58010da1e',1,'clutchlog::fmt']]]
];
diff --git a/docs/search/enums_1.js b/docs/search/enums_1.js
index b255112..4403af7 100644
--- a/docs/search/enums_1.js
+++ b/docs/search/enums_1.js
@@ -1,4 +1,4 @@
var searchData=
[
- ['fg_110',['fg',['../group__UseMacros.html#ga4662a3ec3577c6a575a2c734636ed8a0',1,'clutchlog::fmt']]]
+ ['fg_112',['fg',['../group__UseMacros.html#ga4662a3ec3577c6a575a2c734636ed8a0',1,'clutchlog::fmt']]]
];
diff --git a/docs/search/enums_2.js b/docs/search/enums_2.js
index fc99b23..ce7368f 100644
--- a/docs/search/enums_2.js
+++ b/docs/search/enums_2.js
@@ -1,4 +1,4 @@
var searchData=
[
- ['level_111',['level',['../group__UseMacros.html#ga10fd25a1b51c8c95bd6d876ce1b4b928',1,'clutchlog']]]
+ ['level_113',['level',['../group__UseMacros.html#ga10fd25a1b51c8c95bd6d876ce1b4b928',1,'clutchlog']]]
];
diff --git a/docs/search/enums_3.js b/docs/search/enums_3.js
index 911f7dc..7415429 100644
--- a/docs/search/enums_3.js
+++ b/docs/search/enums_3.js
@@ -1,4 +1,4 @@
var searchData=
[
- ['typo_112',['typo',['../group__UseMacros.html#ga932f47b78fb7b10590d5613a1c4eab89',1,'clutchlog::fmt']]]
+ ['typo_114',['typo',['../group__UseMacros.html#ga932f47b78fb7b10590d5613a1c4eab89',1,'clutchlog::fmt']]]
];
diff --git a/docs/search/files_0.js b/docs/search/files_0.js
index f0542be..663e13b 100644
--- a/docs/search/files_0.js
+++ b/docs/search/files_0.js
@@ -1,4 +1,4 @@
var searchData=
[
- ['clutchlog_2eh_67',['clutchlog.h',['../clutchlog_8h.html',1,'']]]
+ ['clutchlog_2eh_68',['clutchlog.h',['../clutchlog_8h.html',1,'']]]
];
diff --git a/docs/search/functions_0.js b/docs/search/functions_0.js
index 6f1186a..bd680a1 100644
--- a/docs/search/functions_0.js
+++ b/docs/search/functions_0.js
@@ -1,4 +1,4 @@
var searchData=
[
- ['dump_68',['dump',['../group__UseMacros.html#ga63308e8deae3cfec6801318203494143',1,'clutchlog']]]
+ ['dump_69',['dump',['../group__UseMacros.html#ga63308e8deae3cfec6801318203494143',1,'clutchlog']]]
];
diff --git a/docs/search/functions_1.js b/docs/search/functions_1.js
index be53e03..f94353d 100644
--- a/docs/search/functions_1.js
+++ b/docs/search/functions_1.js
@@ -1,8 +1,8 @@
var searchData=
[
- ['file_69',['file',['../group__UseMacros.html#ga10064493c22f5c03b502a42d814c5c5c',1,'clutchlog']]],
- ['fmt_70',['fmt',['../group__UseMacros.html#ga407506bc02ed3f91d88b3df630e54959',1,'clutchlog::fmt']]],
- ['format_71',['format',['../group__UseMacros.html#ga656c277e074b64728cca871f2b484d1c',1,'clutchlog::format(const std::string &format)'],['../group__UseMacros.html#gafc53dbca51d0e2322a21899d0c571a80',1,'clutchlog::format() const'],['../group__UseMacros.html#gaf1219599b1361562c802779572aa669f',1,'clutchlog::format(std::string format, const std::string &what, const level &stage, const std::string &file, const std::string &func, const size_t line) const']]],
- ['format_5fcomment_72',['format_comment',['../group__UseMacros.html#ga2144abe4ec6f630126b6490908b5f924',1,'clutchlog::format_comment(const std::string &format)'],['../group__UseMacros.html#gaa8d0a569ed3623ce36c5e567ec2d1ad5',1,'clutchlog::format_comment() const']]],
- ['func_73',['func',['../group__UseMacros.html#gad32b5a0274dc03ee0004f67ba58b2447',1,'clutchlog']]]
+ ['file_70',['file',['../group__UseMacros.html#ga10064493c22f5c03b502a42d814c5c5c',1,'clutchlog']]],
+ ['fmt_71',['fmt',['../group__UseMacros.html#ga407506bc02ed3f91d88b3df630e54959',1,'clutchlog::fmt']]],
+ ['format_72',['format',['../group__UseMacros.html#ga656c277e074b64728cca871f2b484d1c',1,'clutchlog::format(const std::string &format)'],['../group__UseMacros.html#gafc53dbca51d0e2322a21899d0c571a80',1,'clutchlog::format() const'],['../group__UseMacros.html#gaf1219599b1361562c802779572aa669f',1,'clutchlog::format(std::string format, const std::string &what, const level &stage, const std::string &file, const std::string &func, const size_t line) const']]],
+ ['format_5fcomment_73',['format_comment',['../group__UseMacros.html#ga2144abe4ec6f630126b6490908b5f924',1,'clutchlog::format_comment(const std::string &format)'],['../group__UseMacros.html#gaa8d0a569ed3623ce36c5e567ec2d1ad5',1,'clutchlog::format_comment() const']]],
+ ['func_74',['func',['../group__UseMacros.html#gad32b5a0274dc03ee0004f67ba58b2447',1,'clutchlog']]]
];
diff --git a/docs/search/functions_2.js b/docs/search/functions_2.js
index a648041..8a24a11 100644
--- a/docs/search/functions_2.js
+++ b/docs/search/functions_2.js
@@ -1,9 +1,10 @@
var searchData=
[
- ['level_5fof_74',['level_of',['../group__UseMacros.html#gacebed8c9df9204f22bf8488e62e1cedd',1,'clutchlog']]],
- ['line_75',['line',['../group__UseMacros.html#gaa26c6b81ebaeb9e9daa3457e3a3d17c9',1,'clutchlog']]],
- ['locate_76',['locate',['../group__UseMacros.html#ga4ebdfcded6c56262676bf6926d63fc96',1,'clutchlog']]],
- ['location_77',['location',['../group__UseMacros.html#ga6666106b9e5c239b6ae5e0d1091648e3',1,'clutchlog']]],
- ['log_78',['log',['../group__UseMacros.html#ga23dbb98f0d3c5cc21c232cde16cf317a',1,'clutchlog']]],
- ['logger_79',['logger',['../group__UseMacros.html#gacfaceb77da01503b432644a3efaee4fa',1,'clutchlog']]]
+ ['level_5fof_75',['level_of',['../group__UseMacros.html#gacebed8c9df9204f22bf8488e62e1cedd',1,'clutchlog']]],
+ ['levels_76',['levels',['../group__UseMacros.html#gaff3aa09fb60f7d6dc688c028d3834d8a',1,'clutchlog']]],
+ ['line_77',['line',['../group__UseMacros.html#gaa26c6b81ebaeb9e9daa3457e3a3d17c9',1,'clutchlog']]],
+ ['locate_78',['locate',['../group__UseMacros.html#ga4ebdfcded6c56262676bf6926d63fc96',1,'clutchlog']]],
+ ['location_79',['location',['../group__UseMacros.html#ga6666106b9e5c239b6ae5e0d1091648e3',1,'clutchlog']]],
+ ['log_80',['log',['../group__UseMacros.html#ga23dbb98f0d3c5cc21c232cde16cf317a',1,'clutchlog']]],
+ ['logger_81',['logger',['../group__UseMacros.html#gacfaceb77da01503b432644a3efaee4fa',1,'clutchlog']]]
];
diff --git a/docs/search/functions_3.js b/docs/search/functions_3.js
index c74bba6..f3e4e61 100644
--- a/docs/search/functions_3.js
+++ b/docs/search/functions_3.js
@@ -1,5 +1,5 @@
var searchData=
[
- ['operator_28_29_80',['operator()',['../group__UseMacros.html#gafeaedd18298498d1dcfcc15f5f17ac3c',1,'clutchlog::fmt']]],
- ['out_81',['out',['../group__UseMacros.html#ga7fd7c7bd3668c537061c314a619a336d',1,'clutchlog::out(std::ostream &out)'],['../group__UseMacros.html#ga6c6ab42a1df147e6c2d115bc36ec8266',1,'clutchlog::out()']]]
+ ['operator_28_29_82',['operator()',['../group__UseMacros.html#gafeaedd18298498d1dcfcc15f5f17ac3c',1,'clutchlog::fmt']]],
+ ['out_83',['out',['../group__UseMacros.html#ga7fd7c7bd3668c537061c314a619a336d',1,'clutchlog::out(std::ostream &out)'],['../group__UseMacros.html#ga6c6ab42a1df147e6c2d115bc36ec8266',1,'clutchlog::out()']]]
];
diff --git a/docs/search/functions_4.js b/docs/search/functions_4.js
index eaafa78..69341b5 100644
--- a/docs/search/functions_4.js
+++ b/docs/search/functions_4.js
@@ -1,4 +1,4 @@
var searchData=
[
- ['print_5fon_82',['print_on',['../group__UseMacros.html#ga0b607e343b6813b99eafca1fdfec9cd0',1,'clutchlog::fmt']]]
+ ['print_5fon_84',['print_on',['../group__UseMacros.html#ga0b607e343b6813b99eafca1fdfec9cd0',1,'clutchlog::fmt']]]
];
diff --git a/docs/search/functions_5.js b/docs/search/functions_5.js
index ba29968..492a341 100644
--- a/docs/search/functions_5.js
+++ b/docs/search/functions_5.js
@@ -1,4 +1,4 @@
var searchData=
[
- ['replace_83',['replace',['../group__UseMacros.html#ga972f895c70edc335f3018a2c8971d59e',1,'clutchlog::replace(const std::string &form, const std::string &mark, const std::string &tag) const'],['../group__UseMacros.html#gae90d5a1a428587ad67b38b2ea4ca9fa2',1,'clutchlog::replace(const std::string &form, const std::string &mark, const size_t tag) const']]]
+ ['replace_85',['replace',['../group__UseMacros.html#ga972f895c70edc335f3018a2c8971d59e',1,'clutchlog::replace(const std::string &form, const std::string &mark, const std::string &tag) const'],['../group__UseMacros.html#gae90d5a1a428587ad67b38b2ea4ca9fa2',1,'clutchlog::replace(const std::string &form, const std::string &mark, const size_t tag) const']]]
];
diff --git a/docs/search/functions_6.js b/docs/search/functions_6.js
index 5b6c09b..c3c0abc 100644
--- a/docs/search/functions_6.js
+++ b/docs/search/functions_6.js
@@ -1,5 +1,5 @@
var searchData=
[
- ['scope_5ft_84',['scope_t',['../group__UseMacros.html#ga0f1d865ffcf17f215e5559cdd2690572',1,'clutchlog::scope_t']]],
- ['style_85',['style',['../group__UseMacros.html#gac3ec55057b9c734b66f169bf43dbd591',1,'clutchlog::style(level stage, FMT... styles)'],['../group__UseMacros.html#gad1cfa9945c3f7f98fe8ce724c627d0d6',1,'clutchlog::style(level stage, fmt style)'],['../group__UseMacros.html#ga4831f44fd5ade102e57320632095934d',1,'clutchlog::style(level stage) const']]]
+ ['scope_5ft_86',['scope_t',['../group__UseMacros.html#ga0f1d865ffcf17f215e5559cdd2690572',1,'clutchlog::scope_t']]],
+ ['style_87',['style',['../group__UseMacros.html#gac3ec55057b9c734b66f169bf43dbd591',1,'clutchlog::style(level stage, FMT... styles)'],['../group__UseMacros.html#gad1cfa9945c3f7f98fe8ce724c627d0d6',1,'clutchlog::style(level stage, fmt style)'],['../group__UseMacros.html#ga4831f44fd5ade102e57320632095934d',1,'clutchlog::style(level stage) const']]]
];
diff --git a/docs/search/functions_7.js b/docs/search/functions_7.js
index f266ab7..3aff6eb 100644
--- a/docs/search/functions_7.js
+++ b/docs/search/functions_7.js
@@ -1,4 +1,4 @@
var searchData=
[
- ['threshold_86',['threshold',['../group__UseMacros.html#ga3cb0e4f43a4cadf1966001ad7c9861f4',1,'clutchlog::threshold(level l)'],['../group__UseMacros.html#gab45287cc9c14217904a13aff49573732',1,'clutchlog::threshold() const']]]
+ ['threshold_88',['threshold',['../group__UseMacros.html#ga3cb0e4f43a4cadf1966001ad7c9861f4',1,'clutchlog::threshold(level l)'],['../group__UseMacros.html#ga7a7738eaad114bfa870121412fe23ad9',1,'clutchlog::threshold(const std::string &l)'],['../group__UseMacros.html#gab45287cc9c14217904a13aff49573732',1,'clutchlog::threshold() const']]]
];
diff --git a/docs/search/groups_0.js b/docs/search/groups_0.js
index 40d839e..c035cef 100644
--- a/docs/search/groups_0.js
+++ b/docs/search/groups_0.js
@@ -1,4 +1,4 @@
var searchData=
[
- ['default_20configuration_20macros_116',['Default configuration macros',['../group__DefaultConfigMacros.html',1,'']]]
+ ['default_20configuration_20macros_118',['Default configuration macros',['../group__DefaultConfigMacros.html',1,'']]]
];
diff --git a/docs/search/groups_1.js b/docs/search/groups_1.js
index 219a06e..a8a9003 100644
--- a/docs/search/groups_1.js
+++ b/docs/search/groups_1.js
@@ -1,4 +1,4 @@
var searchData=
[
- ['formating_20tools_117',['Formating tools',['../group__Formating.html',1,'']]]
+ ['formating_20tools_119',['Formating tools',['../group__Formating.html',1,'']]]
];
diff --git a/docs/search/groups_2.js b/docs/search/groups_2.js
index d0514bf..f9e6612 100644
--- a/docs/search/groups_2.js
+++ b/docs/search/groups_2.js
@@ -1,4 +1,4 @@
var searchData=
[
- ['high_2dlevel_20api_20macros_118',['High-level API macros',['../group__UseMacros.html',1,'']]]
+ ['high_2dlevel_20api_20macros_120',['High-level API macros',['../group__UseMacros.html',1,'']]]
];
diff --git a/docs/search/groups_3.js b/docs/search/groups_3.js
index bf183bf..28f6a36 100644
--- a/docs/search/groups_3.js
+++ b/docs/search/groups_3.js
@@ -1,4 +1,4 @@
var searchData=
[
- ['main_20class_119',['Main class',['../group__Main.html',1,'']]]
+ ['main_20class_121',['Main class',['../group__Main.html',1,'']]]
];
diff --git a/docs/search/related_0.js b/docs/search/related_0.js
index 8414299..95d2a87 100644
--- a/docs/search/related_0.js
+++ b/docs/search/related_0.js
@@ -1,4 +1,4 @@
var searchData=
[
- ['operator_3c_3c_113',['operator<<',['../group__UseMacros.html#ga96849ba427feac3a2eeaa1165e3845da',1,'clutchlog::fmt']]]
+ ['operator_3c_3c_115',['operator<<',['../group__UseMacros.html#ga96849ba427feac3a2eeaa1165e3845da',1,'clutchlog::fmt']]]
];