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