/* 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_ */