Initial version.

This commit is contained in:
Igor Sysoev
2017-01-17 20:00:00 +03:00
commit 16cbf3c076
235 changed files with 56359 additions and 0 deletions

40
src/nxt_log_moderation.h Normal file
View File

@@ -0,0 +1,40 @@
/*
* Copyright (C) Igor Sysoev
* Copyright (C) NGINX, Inc.
*/
#ifndef _NXT_LOG_MODERATION_H_INCLUDED_
#define _NXT_LOG_MODERATION_H_INCLUDED_
typedef struct {
uint32_t level;
uint32_t limit;
const char *msg;
nxt_thread_spinlock_t lock;
nxt_pid_t pid;
nxt_uint_t count;
nxt_time_t last;
nxt_event_timer_t timer;
} nxt_log_moderation_t;
#define NXT_LOG_MODERATION 0, -1, 0, 0, NXT_EVENT_TIMER
#define \
nxt_log_moderate(_mod, _level, _log, ...) \
do { \
nxt_log_t *_log_ = _log; \
\
if (_log_->level >= (_level) && nxt_log_moderate_allow(_mod)) { \
_log_->handler(_level, _log_, __VA_ARGS__); \
} \
} while (0)
nxt_bool_t nxt_log_moderate_allow(nxt_log_moderation_t *mod);
#endif /* _NXT_LOG_MODERATION_H_INCLUDED_ */