OpenVAS Libraries  4.0+rc3.SVN
Data Structures | Defines | Functions
misc/openvas_logging.c File Reference

Implementation of logging methods for OpenVAS. More...

#include <stdio.h>
#include <string.h>
#include <stdlib.h>
#include <syslog.h>
#include <unistd.h>
#include <libgen.h>
#include <errno.h>
#include "openvas_logging.h"

Data Structures

struct  openvas_logging_t

Functions

gchar * get_time (gchar *time_fmt)
 Returns time as specified in time_fmt strftime format.
GSList * load_log_configuration (gchar *config_file)
 Loads parameters from a config file into a linked list.
void free_log_configuration (GSList *log_domain_list)
 Frees all resources loaded by the config loader.
void openvas_log_silent (const char *log_domain, GLogLevelFlags log_level, const char *message, gpointer openvas_log_config_list)
 Returns immediately.
void openvas_log_func (const char *log_domain, GLogLevelFlags log_level, const char *message, gpointer openvas_log_config_list)
 Creates the formatted string and outputs it to the log destination.
void setup_log_handlers (GSList *openvas_log_config_list)
 Sets up routing of logdomains to log handlers.

Detailed Description

Implementation of logging methods for OpenVAS.

Todo:
This module fulfils the reqirements to be placed in the base library.

This file contains all methods needed for openvas logging. To enable logging, methods in this file are called. Have a look at openvas-server/openvassd/openvassd.c for an example.

The module reuses glib datatypes and api for memory management and logging.


Function Documentation

void free_log_configuration ( GSList *  log_domain_list)

Frees all resources loaded by the config loader.

Parameters:
log_domain_listHead of the link list.
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.
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.
void openvas_log_func ( const char *  log_domain,
GLogLevelFlags  log_level,
const char *  message,
gpointer  openvas_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.
openvas_log_config_listA pointer to the configuration linked list.
Todo:
Move log_separator to the conf file too.
Todo:
Check what error this is.
void openvas_log_silent ( const char *  log_domain,
GLogLevelFlags  log_level,
const char *  message,
gpointer  openvas_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.
openvas_log_config_listA pointer to the configuration linked list.
void setup_log_handlers ( GSList *  openvas_log_config_list)

Sets up routing of logdomains to log handlers.

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

Parameters:
openvas_log_config_listA pointer to the configuration linked list.