libmetal  353
Library Logging Interfaces

Macros

#define metal_fmt(fmt)   fmt
 
#define metal_log(level, fmt, ...)
 Emit a log message if the log level permits. More...
 
#define metal_err(fmt, args...)   metal_log(METAL_LOG_ERROR, fmt, ##args)
 
#define metal_warn(fmt, args...)   metal_log(METAL_LOG_WARNING, fmt, ##args)
 
#define metal_info(fmt, args...)   metal_log(METAL_LOG_INFO, fmt, ##args)
 
#define metal_dbg(fmt, args...)   metal_log(METAL_LOG_DEBUG, fmt, ##args)
 

Typedefs

typedef void(* metal_log_handler) (enum metal_log_level level, const char *format,...)
 Log message handler type. More...
 

Enumerations

enum  metal_log_level {
  METAL_LOG_EMERGENCY , METAL_LOG_ALERT , METAL_LOG_CRITICAL , METAL_LOG_ERROR ,
  METAL_LOG_WARNING , METAL_LOG_NOTICE , METAL_LOG_INFO , METAL_LOG_DEBUG
}
 Log message priority levels for libmetal. More...
 

Functions

void metal_set_log_handler (metal_log_handler handler)
 Set libmetal log handler. More...
 
metal_log_handler metal_get_log_handler (void)
 Get the current libmetal log handler. More...
 
void metal_set_log_level (enum metal_log_level level)
 Set the level for libmetal logging. More...
 
enum metal_log_level metal_get_log_level (void)
 Get the current level for libmetal logging. More...
 
void metal_default_log_handler (enum metal_log_level level, const char *format,...)
 Default libmetal log handler. More...
 

Detailed Description

Macro Definition Documentation

◆ metal_dbg

#define metal_dbg (   fmt,
  args... 
)    metal_log(METAL_LOG_DEBUG, fmt, ##args)

◆ metal_err

#define metal_err (   fmt,
  args... 
)    metal_log(METAL_LOG_ERROR, fmt, ##args)

◆ metal_fmt

#define metal_fmt (   fmt)    fmt

◆ metal_info

#define metal_info (   fmt,
  args... 
)    metal_log(METAL_LOG_INFO, fmt, ##args)

◆ metal_log

#define metal_log (   level,
  fmt,
  ... 
)
Value:
({ \
_metal.common.log_handler(level, metal_fmt(fmt), ## __VA_ARGS__); \
})
#define metal_fmt(fmt)
Definition: log.h:86
struct metal_state _metal
System specific runtime data.
Definition: init.c:16
enum metal_log_level log_level
Current log level.
Definition: sys.h:68
metal_log_handler log_handler
Current log handler (null for none).
Definition: sys.h:71
struct metal_common_state common
Common (system independent) data.
Definition: sys.h:38

Emit a log message if the log level permits.

Parameters
levelLog level.
fmtFormat string.
...Variable number of arguments.

◆ metal_warn

#define metal_warn (   fmt,
  args... 
)    metal_log(METAL_LOG_WARNING, fmt, ##args)

Typedef Documentation

◆ metal_log_handler

typedef void(* metal_log_handler) (enum metal_log_level level, const char *format,...)

Log message handler type.

Enumeration Type Documentation

◆ metal_log_level

Log message priority levels for libmetal.

Enumerator
METAL_LOG_EMERGENCY 

system is unusable.


METAL_LOG_ALERT 

action must be taken immediately.

METAL_LOG_CRITICAL 

critical conditions.


METAL_LOG_ERROR 

error conditions.


METAL_LOG_WARNING 

warning conditions.


METAL_LOG_NOTICE 

normal but significant condition.

METAL_LOG_INFO 

informational messages.


METAL_LOG_DEBUG 

debug-level messages.


Function Documentation

◆ metal_default_log_handler()

void metal_default_log_handler ( enum metal_log_level  level,
const char *  format,
  ... 
)

Default libmetal log handler.

This handler prints libmetal log messages to stderr.

Parameters
[in]levellog message level.
[in]formatlog message format string.

◆ metal_get_log_handler()

metal_log_handler metal_get_log_handler ( void  )

Get the current libmetal log handler.

Returns
Current log handler.

◆ metal_get_log_level()

enum metal_log_level metal_get_log_level ( void  )

Get the current level for libmetal logging.

Returns
Current log level.

◆ metal_set_log_handler()

void metal_set_log_handler ( metal_log_handler  handler)

Set libmetal log handler.

Parameters
[in]handlerlog message handler.

◆ metal_set_log_level()

void metal_set_log_level ( enum metal_log_level  level)

Set the level for libmetal logging.

Parameters
[in]levellog message level.