-
Notifications
You must be signed in to change notification settings - Fork 722
/
Changelog
222 lines (152 loc) · 7.52 KB
/
Changelog
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
142
143
144
145
146
147
148
149
150
151
152
153
154
155
156
157
158
159
160
161
162
163
164
165
166
167
168
169
170
171
172
173
174
175
176
177
178
179
180
181
182
183
184
185
186
187
188
189
190
191
192
193
194
195
196
197
198
199
200
201
202
203
204
205
206
207
208
209
210
211
212
213
214
215
216
217
218
219
220
zlog (1.2.17) unstable; urgency=medium
* Change License to Apache 2.0, for more people.
-- [Hardy Simpson] <[email protected]>
zlog (1.2.16) unstable; urgency=medium
* Minor bug fixes.
-- [Hardy Simpson] <[email protected]>
zlog (1.2.15) unstable; urgency=medium
* Added support for %r to insert a carriage return.
* Minor bug fixes.
-- [Hardy Simpson] <[email protected]>
zlog (1.2.14) unstable; urgency=medium
* Added support for all syslog facilities.
* Test: Added long log test.
* Added '-' to the list of accepted characters in category name.
* Added API to get zlog version.
* Added %k formatter with leading 0's formatting.
* Added API for category log level checking.
* Fixed compile errors on some platforms.
* Minor bug fixes.
-- [Hardy Simpson] <[email protected]>
zlog (1.2.12) unstable; urgency=medium
* Bugfix to avoid segmentation fault if zlog_init() is called many times.
* Static file rule to emulate Python's WatchedFileHandler mode when used with external log rotation.
-- [Hardy Simpson] <[email protected]>
zlog (1.2.10) unstable; urgency=medium
* Bugfix: LGPL v3 -> LGPL v2.1.
-- [Hardy Simpson] <[email protected]>
zlog (1.2.8) unstable; urgency=medium
* Added gcc __attribute__ macro for checking zlog's format output.
* Added support for # comments in configuration file.
-- [Hardy Simpson] <[email protected]>
zlog (1.2.5) unstable; urgency=medium
* Ensured automatic deletion of thread on single-thread exit using atexit.
* Cached multiple times to ensure every %d is cached every second during strftime.
* Removed usage of %D, although library still supports it, documentation and example code use %d.
* Fixed makefile for static linking zlog-chk-conf.
-- [Hardy Simpson] <[email protected]>
zlog (1.2.4) unstable; urgency=medium
* No longer maintains thread_list; checks configuration for updates during each log write.
-- [Hardy Simpson] <[email protected]>
zlog (1.2.0) unstable; urgency=medium
* Introduced rotate and zip scheme.
* Globalized some static variables to reduce interface parameters.
* Added fstat64.
* Implemented pipe, cronolog.
* Ignored second parameter in record.
* Cross-platform support for __VA_ARGS__.
* Added git/version flags in code (redis).
* Removed auto tools, using custom makefile (redis).
* Lowercased macros.
* Used const.
* Introduced per-thread rule->file fd write time.
* Used time for reload conf period calculation.
* Added zlog_set_conf("section", "command").
* Rewrote format, spec, level using direct arrays for improved performance.
* Added manpage, df, examples.
-- [Hardy Simpson] <[email protected]>
zlog (1.1.3) unstable; urgency=medium
* Dynamically adjusted zlog_record.
-- [Hardy Simpson] <[email protected]>
zlog (1.1.2) unstable; urgency=medium
* Corrected rule.c, capped path_buf.
-- [Hardy Simpson] <[email protected]>
zlog (1.1.1) unstable; urgency=medium
* Corrected rule.c, avoided using FILE* to prevent interleaved logs.
-- [Hardy Simpson] <[email protected]>
zlog (1.1.0) unstable; urgency=medium
* Switched spec to switch loop, introduced bit-wise lock-free checks.
* Established bit flags for us, srcline.
* Added pthread_key_t for thread-private storage.
* Added %D, cached strftime results.
* Cached pid, tid as strings.
* Removed rc usage (redis).
* Cleaned up ZLOG_FMT and ZLOG_HEX.
-- [Hardy Simpson] <[email protected]>
zlog (1.0.7) unstable; urgency=medium
* Partial implementation of custom strftime for efficiency.
* %t displayed in hexadecimal.
* Various minor performance optimizations.
-- [Hardy Simpson] <[email protected]>
zlog (1.0.6) unstable; urgency=medium
* Obtained localtime_r every second for over 1x acceleration.
-- [Hardy Simpson] <[email protected]>
zlog (1.0.5) unstable; urgency=medium
* Fixed issue from 1.0.4; used read-write lock for reopening files.
-- [Hardy Simpson] <[email protected]>
zlog (1.0.4) unstable; urgency=medium
* Tested multi-threading efficiency.
* Cached static file's FILE* and fd for 3x optimization.
-- [Hardy Simpson] <[email protected]>
zlog (1.0.3) unstable; urgency=medium
* Automatic configuration refresh based on log count.
* Automatic sync to disk based on log count.
-- [Hardy Simpson] <[email protected]>
zlog (1.0.2) unstable; urgency=medium
* Added synchronous write to disk option (time-consuming when open).
-- [Hardy Simpson] <[email protected]>
zlog (1.0.1) unstable; urgency=medium
* Used configuration file as lock file.
-- [Hardy Simpson] <[email protected]>
zlog (1.0.0) unstable; urgency=medium
* Changed configuration file layout.
* Made reload atomic, falling back to old on failure.
* Optimized spec_gen_msg using custom buf_append alignment.
* Introduced __func__.
* Set file permissions.
* Customizable output function.
-- [Hardy Simpson] <[email protected]>
zlog (0.9) unstable; urgency=medium
* Shifted towards an object-oriented approach.
* Used arraylist instead of linklist as an internal data structure.
* Improved configuration file format.
* Created a thread-safe logging function library.
* Resolved microsecond/millisecond representation in configuration.
* Merged event into thread to avoid memory allocation.
* Added init API for reading configuration files.
* Parsed default format when initialized without configuration, wrote zlog_chk_conf.
* Isolated category.
* Added update API.
* Adjusted buf size dynamically through zlog_init, rebuilt all caches using zlog_update.
* Aligned file creation permissions similar to fopen (0666 & (~umask)).
* Handled syslog output, though syslog was found slow.
* Traditional mode for rotation, polling, etc.
* Added zlog_profile API for diagnosing configuration memory.
* Added MDC with configurable additional fields.
* Tested buffer rewriting to ensure trailing \0.
* Renamed xlog to zlog.
* Retrieved ZLOG_ERROR_LOG and ZLOG_DEBUG_LOG once to avoid multiple getenv calls.
* Closed zc_assert by default, opened for debugging.
* Added match for !.*, matching unmatched categories.
* Changed priority to level.
* Customizable level.
* Syslog open in rule.
* Moved default format to global configuration.
* Reset level using arraylist.
* Introduced ylog, simplified interface, renamed to dzlog.
* Added zlog-gen-conf.
* Controlled rotate count.
* Abandoned ideas:
- [x] Used writev to write logs, improve efficiency, achieve one-time formation, multiple outputs -- writev internally also uses buffer memcpy.
- [x] Tried semaphore method to make it thread-safe for archiving mutual exclusion problems.
- [x] zlog.h variable-length parameter macro problem (refer to glib's log solution).
- [x] dynamic] file in rule can be obtained from format.
- [x] Modified arraylist read length, loop, etc.
- [x] Specified whether to use threads during runtime.
- [x] buf_append optimization -- for safety, did not optimize this.
- [x] Used some automatic compiler and document generator.
- [x] Output to pipes, named pipes same as files.
- [x] Print stack... may need language support.
- [x] zlog-input -c category -p priority -f conf.
- [x] Used fine-grained reo en method to intelligently determine whether to reopen the file with fo en, the operating system itself has done well enough, no need to do.
-- [Hardy Simpson] <[email protected]>