summaryrefslogtreecommitdiff
path: root/utils/log.h
diff options
context:
space:
mode:
authorVincent Sanders <vince@kyllikki.org>2017-08-31 07:57:35 +0100
committerVincent Sanders <vince@kyllikki.org>2017-09-03 23:40:32 +0100
commit8d9b2efc11529da8cb5870b39ff15249c648b10a (patch)
tree2319851af44bf5606116bce01fad7045f7d95732 /utils/log.h
parentf8cdbbce19b102fb958c56f628a4f76f7f3e5052 (diff)
downloadnetsurf-8d9b2efc11529da8cb5870b39ff15249c648b10a.tar.gz
netsurf-8d9b2efc11529da8cb5870b39ff15249c648b10a.tar.bz2
use nslog library for logging if available.
Diffstat (limited to 'utils/log.h')
-rw-r--r--utils/log.h42
1 files changed, 33 insertions, 9 deletions
diff --git a/utils/log.h b/utils/log.h
index 708016b18..0e73f4d37 100644
--- a/utils/log.h
+++ b/utils/log.h
@@ -17,8 +17,8 @@
* along with this program. If not, see <http://www.gnu.org/licenses/>.
*/
-#ifndef _NETSURF_LOG_H_
-#define _NETSURF_LOG_H_
+#ifndef NETSURF_LOG_H
+#define NETSURF_LOG_H
#include <stdio.h>
#include <stdbool.h>
@@ -43,9 +43,31 @@ typedef bool(nslog_ensure_t)(FILE *fptr);
*/
extern nserror nslog_init(nslog_ensure_t *ensure, int *pargc, char **argv);
-#ifdef NDEBUG
-# define LOG(format, ...) ((void) 0)
-#else
+#ifndef NETSURF_LOG_LEVEL
+#define NETSURF_LOG_LEVEL INFO
+#endif
+
+#define NSLOG_LVL(level) NSLOG_LEVEL_ ## level
+#define NSLOG_EVL(level) NSLOG_LVL(level)
+#define NSLOG_COMPILED_MIN_LEVEL NSLOG_EVL(NETSURF_LOG_LEVEL)
+
+#ifdef WITH_NSLOG
+
+#include <nslog/nslog.h>
+
+NSLOG_DECLARE_CATEGORY(netsurf);
+
+#else /* WITH_NSLOG */
+
+enum nslog_level {
+ NSLOG_LEVEL_DEEPDEBUG = 0,
+ NSLOG_LEVEL_DEBUG = 1,
+ NSLOG_LEVEL_VERBOSE = 2,
+ NSLOG_LEVEL_INFO = 3,
+ NSLOG_LEVEL_WARNING = 4,
+ NSLOG_LEVEL_ERROR = 5,
+ NSLOG_LEVEL_CRITICAL = 6
+};
extern void nslog_log(const char *file, const char *func, int ln, const char *format, ...) __attribute__ ((format (printf, 4, 5)));
@@ -60,13 +82,15 @@ extern void nslog_log(const char *file, const char *func, int ln, const char *fo
# define LOG_LN __LINE__
# endif
-#define LOG(format, args...) \
+#define NSLOG(catname, level, logmsg, args...) \
do { \
- if (verbose_log) { \
- nslog_log(__FILE__, LOG_FN, LOG_LN, format , ##args); \
+ if (NSLOG_LEVEL_##level >= NSLOG_COMPILED_MIN_LEVEL) { \
+ nslog_log(__FILE__, LOG_FN, LOG_LN, logmsg , ##args); \
} \
} while(0)
-#endif
+#define NSLOG_DEFINE_CATEGORY(catname, description)
+
+#endif /* WITH_NSLOG */
#endif