Mercurial > hg > nginx-quic
diff src/core/ngx_log.h @ 0:4eff17414a43
nginx-0.0.1-2002-08-06-20:39:45 import
The first code that uses "ngx_" prefix, the previous one used "gx_" prefix.
At that point the code is not yet usable. The first draft ideas are dated
back to 23.10.2001.
author | Igor Sysoev <igor@sysoev.ru> |
---|---|
date | Tue, 06 Aug 2002 16:39:45 +0000 |
parents | |
children | 34a521b1a148 |
line wrap: on
line diff
new file mode 100644 --- /dev/null +++ b/src/core/ngx_log.h @@ -0,0 +1,118 @@ +#ifndef _NGX_LOG_H_INCLUDED_ +#define _NGX_LOG_H_INCLUDED_ + + +#include <ngx_errno.h> + +typedef enum { + NGX_LOG_EMERG = 0, + NGX_LOG_ALERT, + NGX_LOG_CRIT, + NGX_LOG_ERR, + NGX_LOG_WARN, + NGX_LOG_NOTICE, + NGX_LOG_INFO, + NGX_LOG_DEBUG +} ngx_log_e; + +/* + "... while ", action = "reading client request headers" + "... while reading client request headers" + "... while ", action = "reading client request headers" + context: pop3 user account + "... while reading client command for 'john_doe'" +*/ + +typedef struct { + int log_level; + char *action; + char *context; +/* char *func(ngx_log_t *log); */ +} ngx_log_t; + +#define MAX_ERROR_STR 2048 + +#define _ , + + +#if (HAVE_GCC_VARIADIC_MACROS) + +#define HAVE_VARIADIC_MACROS 1 + +#define ngx_log_error(level, log, args...) \ + if (log->log_level >= level) ngx_log_error_core(level, log, args) + +#ifdef NGX_DEBUG +#define ngx_log_debug(log, args...) \ + if (log->log_level == NGX_LOG_DEBUG) \ + ngx_log_error_core(NGX_LOG_DEBUG, log, 0, args) +#else +#define ngx_log_debug(log, args...) +#endif + +#define ngx_assert(assert, fallback, log, args...) \ + if (!(assert)) { \ + if (log->log_level >= NGX_LOG_ALERT) \ + ngx_log_error_core(NGX_LOG_ALERT, log, 0, args); \ + fallback; \ + } + +void ngx_log_error_core(int level, ngx_log_t *log, ngx_err_t err, + const char *fmt, ...); + +#elif (HAVE_C99_VARIADIC_MACROS) + +#define HAVE_VARIADIC_MACROS 1 + +#define ngx_log_error(level, log, ...) \ + if (log->log_level >= level) ngx_log_error_core(level, log, __VA_ARGS__) + +#ifdef NGX_DEBUG +#define ngx_log_debug(log, ...) \ + if (log->log_level == NGX_LOG_DEBUG) \ + ngx_log_error_core(NGX_LOG_DEBUG, log, 0, __VA_ARGS__) +#else +#define ngx_log_debug(log, ...) +#endif + +#define ngx_assert(assert, fallback, log, ...) \ + if (!(assert)) { \ + if (log->log_level >= NGX_LOG_ALERT) \ + ngx_log_error_core(NGX_LOG_ALERT, log, 0, __VA_ARGS__); \ + fallback; \ + } + +void ngx_log_error_core(int level, ngx_log_t *log, ngx_err_t err, + const char *fmt, ...); + +#else /* NO VARIADIC MACROS */ + +#include <stdarg.h> + +#ifdef NGX_DEBUG +#define ngx_log_debug(log, text) \ + if (log->log_level == NGX_LOG_DEBUG) \ + ngx_log_debug_core(log, text) +#else +#define ngx_log_debug(log, text) +#endif + +#define ngx_assert(assert, fallback, log, text) \ + if (!(assert)) { \ + if (log->log_level >= NGX_LOG_ALERT) \ + ngx_assert_core(log, text); \ + fallback; \ + } + +void ngx_log_error(int level, ngx_log_t *log, ngx_err_t err, + const char *fmt, ...); +void ngx_log_error_core(int level, ngx_log_t *log, ngx_err_t err, + const char *fmt, va_list args); +void ngx_log_debug_core(ngx_log_t *log, const char *fmt, ...); +void ngx_assert_core(ngx_log_t *log, const char *fmt, ...); + + +#endif /* VARIADIC MACROS */ + + +#endif /* _NGX_LOG_H_INCLUDED_ */