Mercurial > hg > nginx
annotate src/core/ngx_times.h @ 9225:1c9264603adc
Syslog: introduced ngx_syslog_send() error logging moderation.
Errors when logging to syslog are now logged at most once per second.
This ensures that persistent errors won't flood other logs, and spontaneous
errors, such as ENOBUFS as observed on BSD systems when syslogd cannot cope
with load, or EAGAIN as seen in similar situation on Linux, won't further
overload logging subsystem, leading to more errors.
Further, errors now can only trigger reconnects at most once per second.
This ensures that persistent errors, which cannot be fixed with reconnects,
don't trigger too much unneeded work.
Additionally, in case of connection errors, such as when syslogd is not
running, connection attempts are only made once per second.
author | Maxim Dounin <mdounin@mdounin.ru> |
---|---|
date | Fri, 01 Mar 2024 05:42:12 +0300 |
parents | 76e7e20cda05 |
children |
rev | line source |
---|---|
441
da8c5707af39
nginx-0.1.0-2004-09-28-12:34:51 import; set copyright and remove unused files
Igor Sysoev <igor@sysoev.ru>
parents:
409
diff
changeset
|
1 |
da8c5707af39
nginx-0.1.0-2004-09-28-12:34:51 import; set copyright and remove unused files
Igor Sysoev <igor@sysoev.ru>
parents:
409
diff
changeset
|
2 /* |
444
42d11f017717
nginx-0.1.0-2004-09-29-20:00:49 import; remove years from copyright
Igor Sysoev <igor@sysoev.ru>
parents:
441
diff
changeset
|
3 * Copyright (C) Igor Sysoev |
4412 | 4 * Copyright (C) Nginx, Inc. |
441
da8c5707af39
nginx-0.1.0-2004-09-28-12:34:51 import; set copyright and remove unused files
Igor Sysoev <igor@sysoev.ru>
parents:
409
diff
changeset
|
5 */ |
da8c5707af39
nginx-0.1.0-2004-09-28-12:34:51 import; set copyright and remove unused files
Igor Sysoev <igor@sysoev.ru>
parents:
409
diff
changeset
|
6 |
da8c5707af39
nginx-0.1.0-2004-09-28-12:34:51 import; set copyright and remove unused files
Igor Sysoev <igor@sysoev.ru>
parents:
409
diff
changeset
|
7 |
178
a8ff48d26cca
nginx-0.0.1-2003-11-11-00:09:22 import
Igor Sysoev <igor@sysoev.ru>
parents:
diff
changeset
|
8 #ifndef _NGX_TIMES_H_INCLUDED_ |
a8ff48d26cca
nginx-0.0.1-2003-11-11-00:09:22 import
Igor Sysoev <igor@sysoev.ru>
parents:
diff
changeset
|
9 #define _NGX_TIMES_H_INCLUDED_ |
a8ff48d26cca
nginx-0.0.1-2003-11-11-00:09:22 import
Igor Sysoev <igor@sysoev.ru>
parents:
diff
changeset
|
10 |
a8ff48d26cca
nginx-0.0.1-2003-11-11-00:09:22 import
Igor Sysoev <igor@sysoev.ru>
parents:
diff
changeset
|
11 |
a8ff48d26cca
nginx-0.0.1-2003-11-11-00:09:22 import
Igor Sysoev <igor@sysoev.ru>
parents:
diff
changeset
|
12 #include <ngx_config.h> |
a8ff48d26cca
nginx-0.0.1-2003-11-11-00:09:22 import
Igor Sysoev <igor@sysoev.ru>
parents:
diff
changeset
|
13 #include <ngx_core.h> |
a8ff48d26cca
nginx-0.0.1-2003-11-11-00:09:22 import
Igor Sysoev <igor@sysoev.ru>
parents:
diff
changeset
|
14 |
a8ff48d26cca
nginx-0.0.1-2003-11-11-00:09:22 import
Igor Sysoev <igor@sysoev.ru>
parents:
diff
changeset
|
15 |
563 | 16 typedef struct { |
17 time_t sec; | |
18 ngx_uint_t msec; | |
19 ngx_int_t gmtoff; | |
20 } ngx_time_t; | |
21 | |
22 | |
499 | 23 void ngx_time_init(void); |
3475
ab353d7dc182
*) introduce ngx_time_sigsafe_update() to update the error log time only
Igor Sysoev <igor@sysoev.ru>
parents:
3474
diff
changeset
|
24 void ngx_time_update(void); |
ab353d7dc182
*) introduce ngx_time_sigsafe_update() to update the error log time only
Igor Sysoev <igor@sysoev.ru>
parents:
3474
diff
changeset
|
25 void ngx_time_sigsafe_update(void); |
455 | 26 u_char *ngx_http_time(u_char *buf, time_t t); |
27 u_char *ngx_http_cookie_time(u_char *buf, time_t t); | |
182
3c49eaf3f522
nginx-0.0.1-2003-11-13-09:14:05 import
Igor Sysoev <igor@sysoev.ru>
parents:
178
diff
changeset
|
28 void ngx_gmtime(time_t t, ngx_tm_t *tp); |
178
a8ff48d26cca
nginx-0.0.1-2003-11-11-00:09:22 import
Igor Sysoev <igor@sysoev.ru>
parents:
diff
changeset
|
29 |
2162 | 30 time_t ngx_next_time(time_t when); |
31 #define ngx_next_time_n "mktime()" | |
32 | |
370
54f76b0b8dca
nginx-0.0.7-2004-06-27-22:01:57 import
Igor Sysoev <igor@sysoev.ru>
parents:
323
diff
changeset
|
33 |
563 | 34 extern volatile ngx_time_t *ngx_cached_time; |
370
54f76b0b8dca
nginx-0.0.7-2004-06-27-22:01:57 import
Igor Sysoev <igor@sysoev.ru>
parents:
323
diff
changeset
|
35 |
563 | 36 #define ngx_time() ngx_cached_time->sec |
37 #define ngx_timeofday() (ngx_time_t *) ngx_cached_time | |
178
a8ff48d26cca
nginx-0.0.1-2003-11-11-00:09:22 import
Igor Sysoev <igor@sysoev.ru>
parents:
diff
changeset
|
38 |
563 | 39 extern volatile ngx_str_t ngx_cached_err_log_time; |
40 extern volatile ngx_str_t ngx_cached_http_time; | |
41 extern volatile ngx_str_t ngx_cached_http_log_time; | |
3873 | 42 extern volatile ngx_str_t ngx_cached_http_log_iso8601; |
5702
777202558122
Added syslog support for error_log and access_log directives.
Vladimir Homutov <vl@nginx.com>
parents:
4412
diff
changeset
|
43 extern volatile ngx_str_t ngx_cached_syslog_time; |
245
e6c005b66b3a
nginx-0.0.1-2004-01-30-00:45:01 import
Igor Sysoev <igor@sysoev.ru>
parents:
218
diff
changeset
|
44 |
e6c005b66b3a
nginx-0.0.1-2004-01-30-00:45:01 import
Igor Sysoev <igor@sysoev.ru>
parents:
218
diff
changeset
|
45 /* |
7280
76e7e20cda05
Core: fixed comment about ngx_current_msec after 81fae70d6cb8.
Ruslan Ermilov <ru@nginx.com>
parents:
5702
diff
changeset
|
46 * milliseconds elapsed since some unspecified point in the past |
76e7e20cda05
Core: fixed comment about ngx_current_msec after 81fae70d6cb8.
Ruslan Ermilov <ru@nginx.com>
parents:
5702
diff
changeset
|
47 * and truncated to ngx_msec_t, used in event timers |
245
e6c005b66b3a
nginx-0.0.1-2004-01-30-00:45:01 import
Igor Sysoev <igor@sysoev.ru>
parents:
218
diff
changeset
|
48 */ |
563 | 49 extern volatile ngx_msec_t ngx_current_msec; |
245
e6c005b66b3a
nginx-0.0.1-2004-01-30-00:45:01 import
Igor Sysoev <igor@sysoev.ru>
parents:
218
diff
changeset
|
50 |
178
a8ff48d26cca
nginx-0.0.1-2003-11-11-00:09:22 import
Igor Sysoev <igor@sysoev.ru>
parents:
diff
changeset
|
51 |
a8ff48d26cca
nginx-0.0.1-2003-11-11-00:09:22 import
Igor Sysoev <igor@sysoev.ru>
parents:
diff
changeset
|
52 #endif /* _NGX_TIMES_H_INCLUDED_ */ |