1/* 2 * Copyright 2008 Google Inc. All Rights Reserved. 3 * 4 * Author: md@google.com (Michael Davidson) 5 */ 6 7#ifndef LOGGING_H_ 8#define LOGGING_H_ 9 10enum msg_type { 11 MSG_DEBUG, 12 MSG_INFO, 13 MSG_WARN, 14 MSG_ERROR, 15 MSG_FATAL, 16}; 17 18void msg(enum msg_type, int data, const char *fmt, ...); 19 20#define DEBUG(level, fmt, args...) msg(MSG_DEBUG, level, fmt, ##args) 21#define INFO(fmt, args...) msg(MSG_INFO, 0, fmt, ##args) 22#define WARN(err, fmt, args...) msg(MSG_WARN, err, fmt, ##args) 23#define ERROR(err, fmt, args...) msg(MSG_ERROR, err, fmt, ##args) 24#define FATAL(err, fmt, args...) msg(MSG_FATAL, err, fmt, ##args) 25 26extern void set_program_name(const char *name); 27extern void set_debug_level(int level); 28extern void set_log_file(FILE *fp); 29 30#endif /* LOGGING_H_ */ 31