title: src/crelude/log.h


src/crelude/log.h

More...

Attributes

Name
const ifast_verbosity

Defines

Detailed Description

Logging given verbosity. You must define a VERBOSE_VAR before including this header. Otherwise, the default value is 1, i.e. only errors & warnings.

Attributes Documentation

variable _verbosity

static const ifast _verbosity = 1;

Macros Documentation

define VERBOSE_VAR

#define VERBOSE_VAR [_verbosity](/crelude/Files/log_8h.md#variable-_verbosity)

define ERROR

#define ERROR 0

define WARN

#define WARN 1

define DEBUG

#define DEBUG 2

define INFO

#define INFO 3

define S_ERROR

#define S_ERROR "  error"

define S_WARN

#define S_WARN "warning"

define S_DEBUG

#define S_DEBUG "  debug"

define S_INFO

#define S_INFO "   info"

define LOG

#define LOG(
    LEVEL,
    FORMATTER,
    ...
)
	__extension__\
	({ if ([VERBOSE_VAR](/crelude/Files/log_8h.md#define-verbose_var) >= LEVEL) \
		   [eprintln](/crelude/Files/io_8h.md#define-eprintln)("[ " S_##LEVEL " ] log<%s()>: " FORMATTER, __func__, ##__VA_ARGS__); \
	   LEVEL; })

Source code


#pragma once
#include "io.h"

#ifndef VERBOSE_VAR
    #define VERBOSE_VAR _verbosity
    static const ifast _verbosity = 1;
#endif

#define ERROR 0
#define WARN  1
#define DEBUG 2
#define INFO  3

#define S_ERROR "  error"
#define S_WARN  "warning"
#define S_DEBUG "  debug"
#define S_INFO  "   info"

#define LOG(LEVEL, FORMATTER, ...) __extension__\
    ({ if (VERBOSE_VAR >= LEVEL) \
           eprintln("[ " S_##LEVEL " ] log<%s()>: " FORMATTER, __func__, ##__VA_ARGS__); \
       LEVEL; })

Updated on 23 August 2022 at 00:54:19 UTC