123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114 |
- #ifndef foodaemonloghfoo
- #define foodaemonloghfoo
- /***
- This file is part of libdaemon.
- Copyright 2003-2008 Lennart Poettering
- libdaemon is free software; you can redistribute it and/or modify
- it under the terms of the GNU Lesser General Public License as
- published by the Free Software Foundation, either version 2.1 of the
- License, or (at your option) any later version.
- libdaemon 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
- Lesser General Public License for more details.
- You should have received a copy of the GNU Lesser General Public
- License along with libdaemon. If not, see
- <http://www.gnu.org/licenses/>.
- ***/
- #include <syslog.h>
- #include <stdarg.h>
- #ifdef __cplusplus
- extern "C" {
- #endif
- /** \file
- *
- * Contains a robust API for logging messages
- */
- /** Specifies where to send the log messages to. The global variable daemon_log_use takes values of this type.
- */
- enum daemon_log_flags {
- DAEMON_LOG_SYSLOG = 1, /**< Log messages are written to syslog */
- DAEMON_LOG_STDERR = 2, /**< Log messages are written to STDERR */
- DAEMON_LOG_STDOUT = 4, /**< Log messages are written to STDOUT */
- DAEMON_LOG_AUTO = 8 /**< If this is set a daemon_fork() will
- change this to DAEMON_LOG_SYSLOG in
- the daemon process. */
- };
- /** This variable is used to specify the log target(s) to
- * use. Defaults to DAEMON_LOG_STDERR|DAEMON_LOG_AUTO */
- extern enum daemon_log_flags daemon_log_use;
- /** Specifies the syslog identification, use daemon_ident_from_argv0()
- * to set this to a sensible value or generate your own. */
- extern const char* daemon_log_ident;
- #if defined(__GNUC__) && ! defined(DAEMON_GCC_PRINTF_ATTR)
- #define DAEMON_GCC_PRINTF_ATTR(a,b) __attribute__ ((format (printf, a, b)))
- #else
- /** A macro for making use of GCCs printf compilation warnings */
- #define DAEMON_GCC_PRINTF_ATTR(a,b)
- #endif
- /** Log a message using printf format strings using the specified syslog priority
- * @param prio The syslog priority (PRIO_xxx constants)
- * @param t,... The text message to log
- */
- void daemon_log(int prio, const char* t, ...) DAEMON_GCC_PRINTF_ATTR(2,3);
- /** This variable is defined to 1 iff daemon_logv() is supported.
- * @since 0.11
- * @see daemon_logv()
- */
- #define DAEMON_LOGV_AVAILABLE 1
- /** Same as daemon_log(), but without variadic arguments
- * @since 0.11
- * @see DAEMON_LOGV_AVAILABLE
- */
- void daemon_logv(int prio, const char* t, va_list ap);
- /** Return a sensible syslog identification for daemon_log_ident
- * generated from argv[0]. This will return a pointer to the file name
- * of argv[0], i.e. strrchr(argv[0], '\')+1
- * @param argv0 argv[0] as passed to main()
- * @return The identification string
- */
- char *daemon_ident_from_argv0(char *argv0);
- /** This variable is defined to 1 iff daemon_set_verbosity() is available.
- * @since 0.14
- * @see daemon_set_verbosity()
- */
- #define DAEMON_SET_VERBOSITY_AVAILABLE 1
- /** Setter for the verbosity level of standard output.
- *
- * @param verbosity_prio Minimum priority level for messages to output
- * on standard output/error
- *
- * Allows to decide which messages to output on standard output/error
- * streams. All messages are logged to syslog and this setting does
- * not influence that.
- *
- * The default value is LOG_WARNING.
- *
- * @since 0.14
- * @see DAEMON_SET_VERBOSITY_AVAILABLE
- */
- void daemon_set_verbosity(int verbosity_prio);
- #ifdef __cplusplus
- }
- #endif
- #endif
|