-
Notifications
You must be signed in to change notification settings - Fork 19
/
Changes
539 lines (338 loc) · 16.1 KB
/
Changes
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
221
222
223
224
225
226
227
228
229
230
231
232
233
234
235
236
237
238
239
240
241
242
243
244
245
246
247
248
249
250
251
252
253
254
255
256
257
258
259
260
261
262
263
264
265
266
267
268
269
270
271
272
273
274
275
276
277
278
279
280
281
282
283
284
285
286
287
288
289
290
291
292
293
294
295
296
297
298
299
300
301
302
303
304
305
306
307
308
309
310
311
312
313
314
315
316
317
318
319
320
321
322
323
324
325
326
327
328
329
330
331
332
333
334
335
336
337
338
339
340
341
342
343
344
345
346
347
348
349
350
351
352
353
354
355
356
357
358
359
360
361
362
363
364
365
366
367
368
369
370
371
372
373
374
375
376
377
378
379
380
381
382
383
384
385
386
387
388
389
390
391
392
393
394
395
396
397
398
399
400
401
402
403
404
405
406
407
408
409
410
411
412
413
414
415
416
417
418
419
420
421
422
423
424
425
426
427
428
429
430
431
432
433
434
435
436
437
438
439
440
441
442
443
444
445
446
447
448
449
450
451
452
453
454
455
456
457
458
459
460
461
462
463
464
465
466
467
468
469
470
471
472
473
474
475
476
477
478
479
480
481
482
483
484
485
486
487
488
489
490
491
492
493
494
495
496
497
498
499
500
501
502
503
504
505
506
507
508
509
510
511
512
513
514
515
516
517
518
519
520
521
522
523
524
525
526
527
528
529
530
531
532
533
534
535
536
537
538
Revision history for Log-Any
** denotes an incompatible change
{{ $NEXT }}
1.717 2023-08-17 10:52:21-05:00 America/Chicago
[Fixed]
- Fixed WithStackTrace proxy to remove arguments in-place instead of
always stringifying the exception object immediately. This means we
need to handle different exception objects differently, but it also
means a better log message. Thanks @larryl and @GrantStreetGroup for
submitting this fix! [Github #100]
1.716 2023-06-26 14:14:46-05:00 America/Chicago
[Added]
- Added a parameter to show stack trace arguments when using the
WithStackTrace proxy. Since these arguments may contain sensitive
information, they are now removed by default. Thanks @sam-ng and
@GrantStreetGroup for submitting this patch! [Github #97]
1.715 2023-05-04 13:09:22-05:00 America/Chicago
[Fixed]
- Fixed Multiplex adapter losing context details. Normally, the
Log::Any::Proxy joins all of the arguments passed in to a logging
method if the adapter it's using does not support structured data.
Multiplex supports structured data, but one of the adapters inside
may not. So, the Multiplex adapter must also perform this
concatenation to avoid losing those additional arguments.
Thanks @jrubinator and @GrantStreetGroup for discovering this bug
and providing the fix! [Github #95]
1.714 2023-03-20 11:48:30-05:00 America/Chicago
[Fixed]
- Fixed Syslog adaptor losing ident and facility information if
another library wrongly calls Sys::Syslog::closelog(). This is not
a perfect solution, but a perfect solution can only ever be to fix
the close that's calling closelog() :P
Thanks to Tom Christiansen and @GrantStreetGroup for reporting this
issue and providing the fix.
1.713 2022-12-12 12:44:52-06:00 America/Chicago
[Fixed]
- Fixed tests failing due to missing Devel::Stacktrace. This is an
optional module, so we do not explicitly depend on it. Thanks
@dbevans and @perlpunk for reporting this issue! (Github #93)
1.712 2022-12-09 11:05:10-06:00 America/Chicago
[Added]
- Added `Log::Any::Proxy::WithStackTrace` to provide a stack trace at
the caller site. Thanks @larryl and @GrantStreetGroup for providing
this feature!
[Other]
- Removed Travis, as they stopped supporting free Github repos :(
1.711 2022-11-22 11:28:01-06:00 America/Chicago
[Fixed]
- Fixed proxy not exposing 'category' attribute (#86). Thanks
@andrew-grechkin!
- Fixed not being able to get a proxy for the "root" category (empty
string) (#90). Thanks @XSven!
1.710 2021-08-02 10:11:33-05:00 America/Chicago
[Other]
- Removed explicit declaration of core dependencies to improve user
experience
1.709 2021-02-17 15:16:20-06:00 America/Chicago
[Added]
- Added "Log::Any->has_consumer" for the rare case where one needs
to know if a consumer has already been configured.
1.708 2020-01-12 22:56:43-05:00 America/New_York
[Added]
- Added 'Capture' adapter for capturing log messages in an array or
running an arbitrary callback. This makes it easier to test log
messages, collect messages from a certain scope for later display.
Thanks @nrdvana! [Github #77]
- Added Log::Any::Adapter 'get' class method to get an adapter for
a category. This allows bypassing the Proxy and using the Adapter
directly. Doing so breaks all the features enabled by a Proxy, and
so should only be used in special circumstances (definitely not in
CPAN modules). Thanks @nrdvana! [Github #78]
- Added 'Multiplex' adapter for directing log output to one or more
Log::Any adapters. This allows, for example, basic logging to
Stderr and logging to a remote Syslogd or Elastic. Thanks
@jrubinator and @GrantStreetGroup for contributing this!
[Github #79, Github #16]
1.707 2018-08-01 22:55:01-05:00 America/Chicago
[Fixed]
- The local context hash (`$log->context`) and the log hash
(`$log->$level( $message, $hash )`) now get merged correctly,
combining contextual logging and structured logging. Thanks
@mephinet! [Github #76] [Github #73]
1.706 2018-07-06 20:20:00-05:00 America/Chicago
[Fixed]
- The File, Stderr, and Stdout adapters now correctly allow being
set to the "emergency" log level threshold. Previously, trying to
only allow "emergency" log lines would result in all logs being
written (and a warning about an invalid log level being set).
Thanks @alabamapaul! [Github #74]
1.705 2018-01-17 13:49:22-06:00 America/Chicago
[Fixed]
- Fixed the `binmode` attribute of the File adapter not working
properly. Thanks @MadLord80! [Github #72]
1.704 2017-12-17 18:13:33-06:00 America/Chicago
[Fixed]
- Fixed some invalid POD and added a test to ensure POD validity
before release. Thanks @shlomif! [Github #67][Github #68]
- Improved performance when no work needed to be done. Thanks
@mephinet! [Github #70]
1.703 2017-11-29 10:56:17-06:00 America/Chicago
[Fixed]
- Fixed log format methods (errorf, warnf, infof, etc...) not
returning the formatted message sometimes. Thanks @vshekun!
[Github #64]
1.702 2017-11-28 15:18:40-06:00 America/Chicago
[Fixed]
- Fixed log output disappearing when the `default_adapter` is set.
Thanks @dallaylaen! [Github #65]
1.701 2017-10-02 14:36:51-05:00 America/Chicago
[Fixed]
- Fixed more method aliases in Log::Any::Adapter::Syslog that were
mapped to invalid syslog priorities. Thanks @legaultp for the
patch!
1.700 2017-09-28 16:59:22-05:00 America/Chicago
[Fixed]
- Fixed version of Log::Any::Adapter::Syslog so that installing it
will also install the rest of Log-Any.
- Fixed method aliasing in Log::Any::Adapter::Syslog for "error"
log method. Thanks @legaultp for the patch!
1.051 2017-08-06 20:41:53-05:00 America/Chicago (TRIAL RELEASE)
[Fixed]
- LOG_ANY_DEFAULT_ADAPTER now correctly logs to the given adapter.
Previously, if no other adapter was set, Log::Any used its
default, super-fast "Null" proxy that simply drops all messages
without checking adapters. Now Log::Any will correctly detect the
environment variable and create the correct, normal proxy object.
Thanks @tm604 for the report and @mephinet for the patch!
1.050 2017-08-03 22:28:37-05:00 America/Chicago (TRIAL RELEASE)
[Added]
- Added structured logging to easily log single hash references in
a parsable format. Thanks @mephinet!
- Added contextual logging to attach information to log messages
based on the current context.
For example, all log messages being generated by a particular HTTP
request could be logged with the URL, even if they're from a part
of the application that doesn't know what HTTP is.
This is very similar to Log::Log4perl's Mapped Diagnostic Context.
Thanks @mephinet!
1.049 2017-03-28 16:02:10-05:00 America/Chicago
[Fixed]
- Fixed failing tests on Windows because of path separator
interpolation. Thanks @nanis [Github #56]
- Added explicit core dependency on Sys::Syslog in case of Perls
with non-standard core libraries. Thanks @nanis [Github #57]
1.048 2017-03-27 15:16:12-05:00 America/Chicago
- No changes since 1.047 trial release
1.047 2017-03-22 20:22:47-05:00 America/Chicago (TRIAL RELEASE)
[Fixed]
- Fixed backwards-compatibility with users using the Unix::Syslog
macros in Log::Any::Adapter::Syslog. This requires that the user
have Unix::Syslog installed (which Log::Any does not explicitly
depend on).
- Log level aliases are now case-insensitive to match the regular
log levels. Prior to this, "WARNING", "Warning", and "warning"
would all work, but "WARN", and "Warn" would not, only "warn".
Thanks to @0x62ash for reporting this issue. [Github #55]
- Invalid log levels for the File, Stderr, and Stdout adapters now
result in a warning, and the default level of "trace" is used.
Previously, no warning would be issued and no logs would be
generated. Thanks to @0x62ash for reporting this issue. [Github
#55]
1.046 2017-01-11 21:22:57-06:00 America/Chicago (TRIAL RELEASE)
[Added]
- The Syslog adapter is now part of the core distribution, since it
relies only on core Perl modules.
1.045 2016-11-11 21:52:46-06:00 America/Chicago
- No changes from previous (trial) release 1.044
1.044 2016-11-06 15:30:35-06:00 America/Chicago (TRIAL RELEASE)
[Fixed]
- Imported log object can now be called anything instead of just
`$log`. This means `use Log::Any '$LOG'` or `use Log::Any '$foo'`
now work.
1.043 2016-11-03 21:31:18-05:00 America/Chicago (TRIAL RELEASE)
[Fixed]
- Objects that overload stringification are now stringified
correctly (instead of run through Data::Dumper). Thanks @mephinet!
1.042 2016-08-26 23:37:33-05:00 America/Chicago
[Added]
- Default adapters can now be configured with arguments (thanks
@bjakubski!)
1.041 2016-08-18 00:00:10-05:00 America/Chicago (TRIAL RELEASE)
[Added]
- Logging methods now return the formatted log string so that it can
be used in a `die` or `warn` call.
[Changed]
- A new default log proxy (Log::Any::Proxy::Null) is used when there
are no adapters configured (and so no place for logs to go). This
proxy does no processing and is about 1000% percent faster on my
laptop.
[Fixed]
- Suppress 'redundant argument' warnings if too many arguments are
given to a log formatting string.
1.040 2016-02-24 17:47:00-05:00 America/New_York
[Fixed]
- Fixed duplicated documentation sections.
1.038 2016-02-10 14:15:31-07:00 America/Mazatlan
- No changes from 1.037
1.037 2016-02-05 20:22:34-05:00 America/New_York (TRIAL RELEASE)
[Fixed]
- Fixed t/filescreen.t Unicode string tests to use a backwards
compatible form. Should fix tests before 5.16.
1.035 2016-02-04 14:47:20-05:00 America/New_York (TRIAL RELEASE)
[Changed]
- The default formatter now replaces a code reference argument with
the results of calling the code reference ONLY when it is the first
argument (in place of a format string). Code references in
subsequent arguments (to sprintf) are not executed, as this would
break backwards compatibility.
[Documented]
- Noted that repeatedly calling 'set' to set an adapter without calling
'remove' or using the 'lexically' feature will leak memory.
1.033 2016-02-03 10:32:57-05:00 America/New_York (TRIAL RELEASE)
[Added]
- The default formatter now expands code references. If the first
argument is a code reference, it is expanded and returned. If an
argument to "sprintf" style formatting is a code reference, it is
expanded.
[Changed]
- The File adapter now opens files with the ":utf8" layer. It also
takes a 'binmode' attribute to change the default.
[Fixed]
- does_not_contain_ok test adapter function now gives proper
diagnostic message
- all diagnostic messages that output the captured log now
correctly dump the log with pretty formatting
[Documented]
- documented the 'proxy_class' argument to `get_logger`
[~Internal~]
- Data::Dumper is loaded lazily, to reduce module load times
for programs that don't need it.
1.032 2015-03-26 17:23:37-04:00 America/New_York
- no changes from 1.031
1.031 2015-03-26 06:08:17-04:00 America/New_York (TRIAL RELEASE)
[Fixed]
- Log::Any::Adapter::Test passed through all constructor arguments,
which could be fatal when mocking adapters without all key-value
pairs (like Log::Any::Adapter::File); now this only passes through
the category and ignores other parameters when used as an
adapter class override.
1.03 2015-01-01 22:39:41-05:00 America/New_York
[Changed]
- Log::Any::Proxy concatenates arguments to basic logging functions
with a space character before passing them to adapters as a single
string. This ensures consistency across adapters that handle
multiple arguments differently.
1.02 2014-12-28 07:06:49-05:00 America/New_York
[Fixed]
- Some adapters relied on Log::Any::Adapter::Util also loading
Log::Any so this behavior has been restored.
1.01 2014-12-26 22:25:13-05:00 America/New_York
[Fixed]
- 'numeric_level' was not exported properly from
Log::Any::Adapter::Util
1.00 2014-12-25 22:04:13-05:00 America/New_York
[Added]
- Logging now goes via a Log::Any::Proxy object instead of directly to
an adapter. This allows easy customization of the message production.
- File, Stdout, and Stderr adapters now support a minimum
log level parameter.
[Changed]
- Removed dead code from Log::Any::Adapter::Base; particularly this
was the formatting code, since this is now handled by
Log::Any::Proxy.
[Fixed]
- File will flock the handle when writing (if flock is avaiable).
- Won't die if adapters aren't loadable modules as long as they
provide a constructor. This allows using private adapters
defined in another file.
[Documented]
- Revised docs for creating adapters
- Fixed typos and improved docs for Log::Any::Adapter::Util; removed
stub docs for modules that didn't need it.
[Deprecated]
- Deprecated some methods in Log::Any::Adapter::Util
[Internal]
- Merged Log-Any and Log-Any-Adapter distributions; reduces code
duplication and ensures Log::Any and adapter framework stay in sync
- Eliminates all non-core dependencies (as of Perl 5.8.1), including
Capture::Tiny, Devel::GlobalDestruction and Guard
0.92 2014-12-15 07:12:38-05:00 America/New_York (TRIAL RELEASE)
0.91 2014-12-14 22:13:09-05:00 America/New_York (TRIAL RELEASE)
0.90 2014-12-12 17:08:22-05:00 America/New_York (TRIAL RELEASE)
0.15 Apr 10, 2013
* Fixes
- Hide 'package Log::Any::Adapter' from PAUSE/Module::Metadata - miyagawa
0.14 Aug 31, 2011
* Fixes
- Fix version number in Log/Any.pm - Stephen Thirlwall
0.13 Aug 2, 2011
* Fixes
- Fix typo in lib/Log/Any/Adapter/Test.pm - RT #69850 - Stephen Thirlwall
0.12 Mar 23, 2011
* Fixes
- Return false from null adapter is_xxx methods - RT #64164 - Chip Salzenberg
- Eliminate 'subroutine redefined' warning in case Log::Any::Adapter loaded before
Log::Any::Test
* Implementation
- Migrate to Dist::Zilla
0.11 Feb 12, 2010
* Improvements
- Add trace level - suggested by Szymon Swierkosz
0.10 Jan 5, 2010
* Fixes
- Fix Log::Any::Core to support references in printf-style methods
0.09 Jan 5, 2010
* Improvements
- Convert undef to string "<undef>" in printf-style methods - RT #53398, suggested by Steven Haryanto
0.08 Dec 15, 2009
* Fixes
- Fix Log::Any::Test to support full logging API (aliases and printf methods)
0.07 Dec 7, 2009
* Implementation
- Depend on Test::Simple rather than Test::More
* Improvements
- Add Log::Any::Test, to aid in testing code that uses Log::Any
0.06 Oct 31, 2009
* Fixes
- Implement Log::Any->set_adapter again for backward compatibility with 0.04 and earlier
0.05 Oct 27, 2009
* Implementation
- ** Strip Log::Any down to a relative minimum, so as to keep it stable and
unchanging. Move everything else to Log::Any::Adapter.
0.04 Sep 3, 2009
* Fixes
- Replace Test::Deep::cmp_deeply with an internal version to avoid Test::Deep dependency
0.03 Jul 17, 2009
* Improvements
- Eliminated extra '::Log' from adapter names, e.g. Log::Any::Adapter::Log::Dispatch is
now Log::Any::Adapter::Dispatch. The long name was properly descriptive but was making
me wince every time.
0.02 Jul 14, 2009
* Fixes
- Fix logging aliases like warn => warning
* Implementation
- Eliminate unnecessary Test/InternalOnly.pm class
- Precompute alias and method lists like Log::Any->logging_methods
0.01 Jul 11, 2009
- Initial version