You can not select more than 25 topics Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
 
 

60 lines
1.5 KiB

/* Copyright 2016 Alex 'AdUser' Z (ad_user@runbox.com)
*
* This program is free software; you can redistribute it and/or modify
* it under the terms of the GNU General Public License version 2 as
* published by the Free Software Foundation.
*/
#ifndef F2B_LOG_H_
#define F2B_LOG_H_
/**
* @file
* This file contains logging routines
*/
/**
* @def LOGLINE_MAX
* Maximum length of log message
*/
#define LOGLINE_MAX 1024
/** levels of log messages */
typedef enum {
log_debug = 0, /**< diagnostic messages */
log_info = 1, /**< usefull, but not important messages */
log_note = 2, /**< ban/unban events */
log_warn = 3, /**< something goes wrong */
log_error = 4, /**< error messages */
log_fatal = 5 /**< critical error, program terminates */
} log_msgtype_t;
/**
* @brief Write message to log
* @param l Level of message
* @param fmt Message format string
*/
void f2b_log_msg(log_msgtype_t l, const char *fmt, ...)
__attribute__ ((format (printf, 2, 3)));
/**
* @brief Logging callback function for use in modules
* @param l Level of message
* @param msg Log message string
*/
void f2b_log_mod_cb(log_msgtype_t l, const char *msg);
/**
* @brief Limit logging messages by importance
* @param level Min level of messages for logging
*/
void f2b_log_set_level(const char *level);
/**
* @brief Use logging to file
* @param path Path for logfile
*/
void f2b_log_to_file (const char *path);
/** @brief Use logging to stderr */
void f2b_log_to_stderr();
/** @brief Use logging to syslog */
void f2b_log_to_syslog();
#endif /* F2B_LOG_H_ */