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
|
Revision history for Log-Any
** denotes an incompatible change
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
|