# clutchlog: clutchlog Class Reference

clutchlog Class Reference
Main class

## Classes

class | fmt
| Color and style formatter for ANSI terminal escape sequences. More...
struct | scope_t
| Structure holding a location matching. More...

## Public Member Functions

Configuration accessors
void | format (const std::string &format)
| Set the template string.
std::string | format () const
| Get the template string.
void | format_comment (const std::string &format)
| Set the template string for dumps.
std::string | format_comment () const
| Get the template string for dumps.
void | out (std::ostream &out)
| Set the output stream on which to print.
std::ostream & | out ()
| Get the output stream on which to print.
void | threshold (level l)
| 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.
void | func (std::string func)
| Set the regular expression filtering the function location.
void | line (std::string line)
| Set the regular expression filtering the line location.
void | location (const std::string &in_file, const std::string &in_function=".*", const std::string &in_line=".*")
| Set the regular expressions filtering the location.
template<class ... FMT>
void | style (level stage, FMT... styles)
| Set the style (color and typo) of the given log level. More...
void | style (level stage, fmt style)
| Set the style (color and typo) of the given log level, passing a `fmt` instance.
fmt | style (level stage) const
| Get the configured fmt instance of the given log level.
Low-level API
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.
std::string | replace (const std::string &form, const std::string &mark, const std::string &tag) const
| Replace `mark` by `tag` in `form`. More...
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.
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 corresponding to the log level.
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.
template<class In >
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.

## Static Protected Attributes

static std::string | default_format = CLUTCHLOG_DEFAULT_FORMAT
| Default format of the messages.
static std::string | dump_default_format = CLUTCHDUMP_DEFAULT_FORMAT
| Default format of the comment line in file dump.
static std::string | dump_default_sep = CLUTCHDUMP_DEFAULT_SEP
| Default item separator for dump.
static std::string | default_depth_mark = CLUTCHLOG_DEFAULT_DEPTH_MARK
| Default mark for stack depth.
static unsigned int | default_strip_calls = CLUTCHLOG_STRIP_CALLS
| Number of call stack levels to remove from depth display by default.
static char | default_hfill_char = CLUTCHLOG_HFILL_MARK
| Default character used as a filling for right-align the right part of messages with "{hfill}".

## High-level API

enum | level { critical =0, error =1, warning =2, progress =3, note =4, info =5, debug =6, xdebug =7 }
| Available log levels.
static clutchlog & | logger ()
| Get the logger instance. More...

## Internal details

const size_t | _strip_calls
| Current number of call stack levels to remove from depth display.
const std::map< level, std::string > | _level_word
| Dictionary of level identifier to their string representation.
std::map< std::string, level > | _word_level
| Dictionary of level string to their identifier.
std::map< level, fmt > | _level_fmt
| Dictionary of level identifier to their format.
std::string | _format_log
| Current format of the standard output.
std::string | _format_dump
| Current format of the file output.
char | _hfill_char
| Character for filling.
std::ostream * | _out
| Standard output.
level | _stage
| Current log level.
std::regex | _in_file
| Current file location filter.
std::regex | _in_func
| Current function location filter.
std::regex | _in_line
| Current line location filter.
| clutchlog (clutchlog const &)=delete
void | operator= (clutchlog const &)=delete

The documentation for this class was generated from the following file:

- clutchlog/clutchlog.h