unbound: util/log.h File Reference

unbound 0.1

Macros | Enumerations | Functions | Variables
log.h File Reference

This file contains logging functions. More...

## Macros
#define | log_assert(x) /*nothing*/
| an assertion that is thrown to the logfile.

## Enumerations
enum | verbosity_value { NO_VERBOSE =0 , NO_VERBOSE = 0 , VERB_OPS , VERB_DETAIL , VERB_QUERY , VERB_ALGO , VERB_CLIENT }
| verbosity value: More...

## Functions
void | verbose (enum verbosity_value level, const char *format,...) ATTR_FORMAT(printf
| log a verbose message, pass the level for this message.
void void | log_init (const char *filename, int use_syslog, const char *chrootdir)
| call this to initialize logging services.
void | log_file (FILE *f)
| Set logging to go to the specified file *.
void | log_thread_set (int *num)
| Init a thread (will print this number for the thread log entries).
int | log_thread_get (void)
| Get the thread id from logging system.
void | log_ident_set (const char *id)
| Set identity to print, default is 'unbound'.
void | log_ident_set_default (const char *id)
| Set default identity to print, default is 'unbound'.
void | log_ident_revert_to_default (void)
| Revert identity to print, back to the recorded default value.
void | log_ident_set_or_default (const char *identity)
| Set identity to print if there is an identity, otherwise set the default.
void | log_set_time_asc (int use_asc)
| Set if the time value is printed ascii or decimal in log entries.
void * | log_get_lock (void)
| get log lock
void | log_info (const char *format,...) ATTR_FORMAT(printf
| Log informational message.
void void | log_err (const char *format,...) ATTR_FORMAT(printf
| Log error message.
void void void | log_warn (const char *format,...) ATTR_FORMAT(printf
| Log warning message.
void void void void | log_hex (const char *msg, void *data, size_t length)
| Log a hex-string to the log.
void | log_query (const char *format,...) ATTR_FORMAT(printf
| Log query.
void void | log_reply (const char *format,...) ATTR_FORMAT(printf
| Log reply.
void void void | log_buf (enum verbosity_value level, const char *msg, struct sldns_buffer *buf)
| Easy alternative for log_hex, takes a sldns_buffer.
void | fatal_exit (const char *format,...) ATTR_FORMAT(printf
| Log fatal error message, and exit the current process.
void | log_vmsg (int pri, const char *type, const char *format, va_list args)
| va_list argument version of log_info.

## Variables
enum verbosity_value | verbosity
| The global verbosity setting.
void | ATTR_NORETURN

## Detailed Description

This file contains logging functions.

## Enumeration Type Documentation

## ◆ verbosity_value

enum verbosity_value

verbosity value:

Enumerator
NO_VERBOSE | 0 - no verbose messages
VERB_OPS | 1 - operational information
VERB_DETAIL | 2 - detailed information
VERB_QUERY | 3 - query level information
VERB_ALGO | 4 - algorithm level information
VERB_CLIENT | 5 - querier client information

## Function Documentation

## ◆ verbose()

void verbose | ( | enum verbosity_value | level,
|  | const char * | format,
|  |  | ...
| ) |  |

log a verbose message, pass the level for this message.

It has printf formatted arguments. No trailing newline is needed.

Parameters

  level | verbosity level for this message, compared to global verbosity setting.
  format | printf-style format string. Arguments follow.

## ◆ log_init()

void void log_init | ( | const char * | filename,
|  | int | use_syslog,
|  | const char * | chrootdir
| ) |  |

call this to initialize logging services.

Parameters

  filename | if NULL stderr is used.
  use_syslog | set to true to ignore filename and use syslog(3).
  chrootdir | to which directory we have been chrooted, if any.

References ident, key_created, log_err(), log_lock, logfile, logkey, VERB_QUERY, and verbose().

Referenced by context_finalize(), do_log_reopen(), main(), perform_setup(), run_daemon(), service_init(), service_start(), and ub_ctx_create_nopipe().

## ◆ log_file()

void log_file | ( | FILE * | f | ) |

Set logging to go to the specified file *.

This setting does not affect the use_syslog setting.

Parameters

  f | to that file, or pass NULL to disable logging.

References log_lock, and logfile.

Referenced by context_finalize(), ub_ctx_debugout(), and ub_ctx_delete().

## ◆ log_thread_set()

void log_thread_set | ( | int * | num | ) |

Init a thread (will print this number for the thread log entries).

Must be called from the thread itself. If not called 0 is printed.

Parameters

  num | number to print for this thread. Owned by caller, must continue to exist.

References logkey.

Referenced by daemon_cleanup(), dnstap_io(), ext_thread(), libworker_dobg(), test_thr_main(), thread_start(), and win_do_cron().

## ◆ log_thread_get()

int log_thread_get | ( | void |  | ) |

Get the thread id from logging system.

Set after log_init is initialised, or log_thread_set for newly created threads. This initialisation happens in unbound as a daemon, in daemon startup code, when that spawns threads.

Returns
  thread number, from 0 and up. Before initialised, returns 0.

References key_created, and logkey.

## ◆ log_ident_set()

void log_ident_set | ( | const char * | id | ) |

Set identity to print, default is 'unbound'.

Parameters

  id | string to print. Name of executable.

References ident.

Referenced by log_ident_set_or_default(), main(), and ub_ctx_create_nopipe().

## ◆ log_ident_set_default()

void log_ident_set_default | ( | const char * | id | ) |

Set default identity to print, default is 'unbound'.

Parameters

  id | string to print. Name of executable.

Referenced by main().

## ◆ log_ident_set_or_default()

void log_ident_set_or_default | ( | const char * | identity | ) |

Set identity to print if there is an identity, otherwise set the default.

Parameters

  identity | the identity to set.

References log_ident_set().

Referenced by apply_settings().

## ◆ log_set_time_asc()

void log_set_time_asc | ( | int | use_asc | ) |

Set if the time value is printed ascii or decimal in log entries.

Parameters

  use_asc | if true, ascii is printed, otherwise decimal. If the conversion fails or you have no time functions, decimal is printed.

References log_time_asc.

Referenced by config_apply(), and config_set_option().

## ◆ log_info()

void log_info | ( | const char * | format,
|  |  | ...
| ) |  |

Log informational message.

Pass printf formatted arguments. No trailing newline is needed.

Parameters

  format | printf-style format string. Arguments follow.

## ◆ log_err()

void void log_err | ( | const char * | format,
|  |  | ...
| ) |  |

Log error message.

Pass printf formatted arguments. No trailing newline is needed.

Parameters

  format | printf-style format string. Arguments follow.

## ◆ log_warn()

void void void log_warn | ( | const char * | format,
|  |  | ...
| ) |  |

Log warning message.

Pass printf formatted arguments. No trailing newline is needed.

Parameters

  format | printf-style format string. Arguments follow.

## ◆ log_hex()

void void void void log_hex | ( | const char * | msg,
|  | void * | data,
|  | size_t | length
| ) |  |

Log a hex-string to the log.

Can be any length. performs mallocs to do so, slow. But debug useful.

Parameters

  msg | string desc to accompany the hexdump.
  data | data to dump in hex format.
  length | length of data.

References log_hex_f(), and verbosity.

Referenced by auth_zone_generate_zonemd_check(), and test_buffers().

## ◆ log_query()

void log_query | ( | const char * | format,
|  |  | ...
| ) |  |

Log query.

Pass printf formatted arguments. No trailing newline is needed.

Parameters

  format | printf-style format string. Arguments follow.

## ◆ log_reply()

void void log_reply | ( | const char * | format,
|  |  | ...
| ) |  |

Log reply.

Pass printf formatted arguments. No trailing newline is needed.

Parameters

  format | printf-style format string. Arguments follow.

## ◆ log_buf()

void void void log_buf | ( | enum verbosity_value | level,
|  | const char * | msg,
|  | struct sldns_buffer * | buf
| ) |  |

Easy alternative for log_hex, takes a sldns_buffer.

Parameters

  level | verbosity level for this message, compared to global verbosity setting.
  msg | string desc to print
  buf | the buffer.

References log_hex_f(), sldns_buffer_begin(), sldns_buffer_limit(), and verbosity.

Referenced by outnet_udp_cb(), serviced_callbacks(), and test_buffers().

## ◆ fatal_exit()

void fatal_exit | ( | const char * | format,
|  |  | ...
| ) |  |

Log fatal error message, and exit the current process.

Pass printf formatted arguments. No trailing newline is needed.

Parameters

  format | printf-style format string. Arguments follow.

## ◆ log_vmsg()

void log_vmsg | ( | int | pri,
|  | const char * | type,
|  | const char * | format,
|  | va_list | args
| ) |  |

va_list argument version of log_info.

Parameters

  pri | priority type, for example 5 (INFO).
  type | string to designate type of message (info, error).
  format | the printf style format to print. no newline.
  args | arguments for format string.

References ident, log_lock, log_time_asc, logfile, logkey, MSG_GENERIC_ERR, MSG_GENERIC_INFO, MSG_GENERIC_SUCCESS, MSG_GENERIC_WARN, and SERVICE_NAME.

Referenced by fatal_exit(), log_err(), log_info(), log_warn(), and verbose().