/* * Copyright (c) 2015 Enrico M. Crisostomo * * This program is free software; you can redistribute it and/or modify it under * the terms of the GNU General Public License as published by the Free Software * Foundation; either version 3, or (at your option) any later version. * * This program is distributed in the hope that it will be useful, but WITHOUT * ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS * FOR A PARTICULAR PURPOSE. See the GNU General Public License for more * details. * * You should have received a copy of the GNU General Public License along with * this program. If not, see . */ /** * @file * @brief Header of the `libfswatch` library containing logging functions.. * * @copyright Copyright (c) 2014-2015 Enrico M. Crisostomo * @license GNU General Public License v. 3.0 * @author Enrico M. Crisostomo * @version 1.8.0 */ #ifndef LIBFSW_LOG_H # define LIBFSW_LOG_H #include /** * Prints the specified message to standard output. */ void fsw_log(const char * msg); /** * Prints the specified message to the specified file. */ void fsw_flog(FILE * f, const char * msg); /** * Formats the specified message and prints it to standard output. The message * string format conforms with printf. */ void fsw_logf(const char * format, ...); /** * Formats the specified message and prints it to the specified file. The * message string format conforms with printf. */ void fsw_flogf(FILE * f, const char * format, ...); /** * Prints the specified message using perror. */ void fsw_log_perror(const char * msg); /** * Prints the specified message using perror. The message string format * conforms with printf. */ void fsw_logf_perror(const char * format, ...); /** * @brief Log the specified message to the standard output prepended by the * source line number. */ # define FSW_LOG(msg) fsw_logf("%s: ", __func__); fsw_log(msg) /** * @brief Log the specified message to the standard error prepended by the * source line number. */ # define FSW_ELOG(msg) fsw_flogf(stderr, "%s: ", __func__); fsw_flog(stderr, msg) /** * @brief Log the specified `printf()`-like message to the standard output * prepended by the source line number. */ # define FSW_LOGF(msg, ...) fsw_logf("%s: ", __func__); fsw_logf(msg, __VA_ARGS__) /** * @brief Log the specified `printf()`-like message to the standard error * prepended by the source line number. */ # define FSW_ELOGF(msg, ...) fsw_flogf(stderr, "%s: ", __func__); fsw_flogf(stderr, msg, __VA_ARGS__) /** * @brief Log the specified `printf()`-like message to the specified file * descriptor prepended by the source line number. */ # define FSW_FLOGF(f, msg, ...) fsw_flogf(f, "%s: ", __func__); fsw_flogf(f, msg, __VA_ARGS__) #endif /* LIBFSW_LOG_H */