2 * Copyright (c) 2013, Olivier MATZ <zer0@droids-corp.org>
4 * Redistribution and use in source and binary forms, with or without
5 * modification, are permitted provided that the following conditions are met:
7 * * Redistributions of source code must retain the above copyright
8 * notice, this log of conditions and the following disclaimer.
9 * * Redistributions in binary form must reproduce the above copyright
10 * notice, this log of conditions and the following disclaimer in the
11 * documentation and/or other materials provided with the distribution.
12 * * Neither the name of the University of California, Berkeley nor the
13 * names of its contributors may be used to endorse or promote products
14 * derived from this software without specific prior written permission.
16 * THIS SOFTWARE IS PROVIDED BY THE REGENTS AND CONTRIBUTORS ``AS IS'' AND ANY
17 * EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED
18 * WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE
19 * DISCLAIMED. IN NO EVENT SHALL THE REGENTS AND CONTRIBUTORS BE LIABLE FOR ANY
20 * DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES
21 * (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES;
22 * LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND
23 * ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT
24 * (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS
25 * SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
35 * This module provides logging helpers. XXX explain
39 #define CFZY_LOG_ERR 0
40 #define CFZY_LOG_WARNING 1
41 #define CFZY_LOG_NOTICE 2
42 #define CFZY_LOG_INFO 3
43 #define CFZY_LOG_DEBUG 4
46 * Initialize log subsystem
49 * 0 on succes, -1 on error
51 int cfzy_log_init(void);
54 * Uninitialize log subsystem
56 void cfzy_log_exit(void);
59 * Set default log level
62 * Level of log, -1 means no log at all
64 * 0 on succes, -1 on error
66 int cfzy_log_set_default_level(int level);
69 * Set log level for a specific log type
72 * String describing the log type
74 * Level of log, -1 means no log at all
76 * 0 on succes, -1 on error
78 int cfzy_log_set_level(const char *logtype, int level);
81 * Print a log if given level is <= to configured log level
83 * The log is displayed on standard error.
86 * String describing the log type
88 * Level at which the text must be displayed
90 * Format string, followed by optional arguments, like in printf.
92 * The number of written characters (0 if nothing is diplayed),
95 int cfzy_log_printf(const char *logtype, int level, const char *fmt, ...);
99 * Print a log if given level is <= to configured log level
101 #define CFZY_LOG(logtype, level, fmt, args...) \
102 cfzy_log_printf(logtype, CFZY_LOG_##level, fmt, \
105 #define CFZY_LOG(logtype, level, fmt, args...) \
106 cfzy_log_printf(logtype, CFZY_LOG_##level, "%s():%d " fmt, \
107 __func__, __LINE__, ## args)
110 #endif /* _CFZY_LOG_H_ */