Greenbone Vulnerability Management Libraries 22.12.2
logging.h File Reference

Implementation of logging methods. More...

#include <glib.h>

Go to the source code of this file.

Macros

#define LOG_REFERENCES_AVAILABLE
 for backward compatibility
 

Functions

GSList * load_log_configuration (gchar *)
 Loads parameters from a config file into a linked list.
 
void free_log_configuration (GSList *)
 Frees all resources loaded by the config loader.
 
gchar * get_time (gchar *)
 Returns time as specified in time_fmt strftime format.
 
void gvm_log_silent (const char *, GLogLevelFlags, const char *, gpointer)
 Returns immediately.
 
void gvm_log_func (const char *, GLogLevelFlags, const char *, gpointer)
 Creates the formatted string and outputs it to the log destination.
 
void log_func_for_gnutls (int, const char *)
 This function logs debug messages from gnutls.
 
int setup_log_handlers (GSList *)
 Sets up routing of logdomains to log handlers.
 
void gvm_log_lock (void)
 Try to lock logger_mutex.
 
void gvm_log_unlock (void)
 Unlock logger_mutex.
 
void set_log_reference (char *)
 Set the log reference object.
 
char * get_log_reference (void)
 Get the log reference object.
 
void free_log_reference (void)
 Free the log reference object.
 
void set_log_tz (const gchar *)
 Set the log timezone.
 

Detailed Description

Implementation of logging methods.

Macro Definition Documentation

◆ LOG_REFERENCES_AVAILABLE

#define LOG_REFERENCES_AVAILABLE

for backward compatibility

Function Documentation

◆ free_log_configuration()

void free_log_configuration ( GSList * log_domain_list)

Frees all resources loaded by the config loader.

Parameters
log_domain_listHead of the link list.

◆ free_log_reference()

void free_log_reference ( void )

Free the log reference object.

The reference object is used to detect corresponding logs.

◆ get_log_reference()

char * get_log_reference ( void )

Get the log reference object.

This function returns the current log reference. This enables the possibility to save or modify the current reference value.

Returns
char*

◆ get_time()

gchar * get_time ( gchar * time_fmt)

Returns time as specified in time_fmt strftime format.

Parameters
time_fmtptr to the string format to use. The strftime man page documents the conversion specification. An example time_fmt string is "%Y-%m-%d %H:%M:%S".
Returns
NULL in case the format string is NULL. A ptr to a string that contains the formatted date time value. This value must be freed using glib's g_free.

◆ gvm_log_func()

void gvm_log_func ( const char * log_domain,
GLogLevelFlags log_level,
const char * message,
gpointer gvm_log_config_list )

Creates the formatted string and outputs it to the log destination.

Parameters
log_domainA string containing the message's log domain.
log_levelFlags defining the message's log level.
messageA string containing the log message.
gvm_log_config_listA pointer to the configuration linked list.

◆ gvm_log_lock()

void gvm_log_lock ( void )

Try to lock logger_mutex.

◆ gvm_log_silent()

void gvm_log_silent ( const char * log_domain,
GLogLevelFlags log_level,
const char * message,
gpointer gvm_log_config_list )

Returns immediately.

Parameters
log_domainA string containing the message's log domain.
log_levelFlags defining the message's log level.
messageA string containing the log message.
gvm_log_config_listA pointer to the configuration linked list.

◆ gvm_log_unlock()

void gvm_log_unlock ( void )

Unlock logger_mutex.

◆ load_log_configuration()

GSList * load_log_configuration ( gchar * config_file)

Loads parameters from a config file into a linked list.

Parameters
config_fileA string containing the path to the configuration file to load.
Returns
NULL in case the config file could not be loaded or an error occurred otherwise, a singly linked list of parameter groups is returned.

◆ log_func_for_gnutls()

void log_func_for_gnutls ( int level,
const char * message )

This function logs debug messages from gnutls.

Parameters
levelGnuTLS log level (integer from 0 to 99 according to GnuTLS documentation.
messageGnuTLS log message.

To enable GNUTLS debug messages, the environment variable OPENVAS_GNUTLS_DEBUG is to be set to the desired log level as described in the GNUTLS manual.

◆ set_log_reference()

void set_log_reference ( char * ref)

Set the log reference object.

In order to be able to see which logs are related to each other, we define a common reference for them. E.g. when multiple scans in OpenVAS are running simultaniousely it is possible to detect all log corresponding to the same scan. The log reference is optional and must be set before calling setup_log_handlers. The data given must be freed by calling free_log_reference(). If called multiple times the old reference gets freed and the new one is set instead.

Parameters
ref

◆ set_log_tz()

void set_log_tz ( const gchar * tz)

Set the log timezone.

This is the timezone used for dates in log messages. If NULL then the current timezone is used.

Parameters
tzTimezone.

◆ setup_log_handlers()

int setup_log_handlers ( GSList * gvm_log_config_list)

Sets up routing of logdomains to log handlers.

Iterates over the link list and adds the groups to the handler.

Parameters
gvm_log_config_listA pointer to the configuration linked list.
Returns
0 on success, -1 if not able to create log file directory or open log file for some domain.