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