0.035 2020-03-10 Released-By: PERLANCAR; Urgency: medium - Support perl < 5.22 (no warnings category 'redundant' yet) [RT#132066]. 0.034 2020-03-09 Released-By: PERLANCAR; Urgency: medium - Add meta() and check meta version so in the future we can reject plugins that are not up-to-date. 0.033 2020-03-07 Released-By: PERLANCAR; Urgency: medium - Rename things for clarity. 1) routine types: log_{sub,method} -> logger_{sub,method}, is_{sub,method} -> level_checker_{sub,method} (old names still accepted for now). 2) hooks: create_is_routine -> create_level_checker, create_log_routine -> create_outputter (old names still accepted for now). This avoids confusion between "logger routine" (the final routine that gets installed to target) vs "outputter" (the routine that does actual sending to output, provided by output plugins). The "is routine" was also a bad name. 0.032 2020-03-06 Released-By: PERLANCAR; Urgency: medium - Introduce filters as a way to do custom filtering as well as to extract additional information from the original logger arguments, e.g. so we can do multilevel log(level=>..., message=>...), pass category log(category=>..., ...) and so on. - [INCOMPATIBLE CHANGE] [removed feature] Remove multilevel (logml) stuffs and reimplement them with filters: remove logml_{subs,methods} routine types, remove create_logml_routine phase, remove ArrayML output. All outputs/plugins that provide create_logml_routine will stop working and will need to be updated. - [INCOMPATIBLE CHANGE] Rename some hook arguments passed to plugin for clarity: target -> target_type, target_arg -> target_name, init_args -> per_target_conf. - Merge Log::ger::Format::Default from Log-ger-Default-Format. - Rename variables/terminologies to be clearer: target -> target type, target arg -> target name, init args -> per-target conf. We also now have per-message conf, produced by filter. 0.031 2020-03-04 Released-By: PERLANCAR; Urgency: medium - Allow each routine to have its own init args; this allows e.g. creating multiple sets of logger subroutines that log to different categories, as implemented in Log::ger::Plugin::Multisets. - Silence 'Redundant argument in sprintf' warning. - [doc] Tweak to make module name and version clearer [GH #2]. 0.030 2020-02-18 Released-By: PERLANCAR; Urgency: low - No functional changes. - [doc] Tweak Synopsis, at least show how to set level & pick multiple outputs. 0.029 2020-02-18 Released-By: PERLANCAR; Urgency: low - No functional changes. - [dist] Mark default formatter block using # BEGIN_BLOCK .. # END_BLOCK so it can be extracted by Dist::Zilla plugin [InsertBlock::FromModule]. 0.028 2019-05-06 Released-By: PERLANCAR - Use Data::Dumper's Useqq=1 to show unprintable characters. 0.027 2019-04-13 Released-By: PERLANCAR - Fix startup overhead regression by avoiding to load Sub::Name & name routines if we don't have any outputs. 0.026 2019-04-12 Released-By: PERLANCAR - UPDATE 2019-04-13: This version has startup overhead regression. You might want to update to 0.027. - Name the generated routines with Sub::Name if available. - Remove declaration of unneeded variable $Caller_Depth_Offset. 0.025 2018-12-20 Released-By: PERLANCAR - No functional changes. - [doc] Mention Debug::Print. - [doc] Also mention speed relative to Log::Contextual. 0.024 2018-12-20 Released-By: PERLANCAR - No functional changes. - [doc] Mention that Log::ger is ~100x faster than Log::Dispatch. 0.023 2017-08-03 Released-By: PERLANCAR - [Internal] Change the numeric values of level, to accomodate more room for custom levels. - Defer set default null routines so other module can customize levels. 0.022 2017-08-03 Released-By: PERLANCAR - [Bugfix] Fix stupid copy-paste mistake [RT#122687]. - [doc] Fix copy-paste mistake [RT#122689]. 0.021 2017-08-02 Released-By: PERLANCAR - [Bugfix] Output, Layout: set() now properly replaces hooks from previous output/layout plugin (need to remove from all phases). - Add output for testing: ArrayML. 0.020 2017-07-30 Released-By: PERLANCAR - [ux] Enable $Data::Dmp::OPT_REMOVE_PRAGMAS. 0.019 2017-07-14 Released-By: PERLANCAR - [Bugfix] Forgot to create preconstructed default null-loggers for object target. 0.018 2017-07-14 Released-By: PERLANCAR - 'use Log::ger::Format "Foo"' now sets for current package instead of globally (but the other plugins like Log::ger::Output or Log::ger::Layout still defaults to setting globally). 0.017 2017-07-13 Released-By: PERLANCAR - No functional changes. - [doc] Update some benchmark numbers. 0.016 2017-07-13 Released-By: PERLANCAR - Reduce startup overhead by splitting some parts of Log::ger to Log::ger::Heavy. When user loads modules that have 'use Log::ger', but never adds any outputs (which is a pretty common case when user just uses a module without setting up any logging), then we can cheat by skipping init_target() and just installs the null, default-named logging routines. So we split the part that does real init_target() to Log::ger::Heavy, similar to how Carp & Carp::Heavy was split. This reduces startup overhead significantly. When user loads Log::ger::Util (e.g. to run set_plugin()) or when some hooks are added, then we load Log::ger::Heavy. 0.015 2017-07-12 Released-By: PERLANCAR - [Bugfix] Used the wrong key to get per-object hooks. 0.014 2017-07-11 Released-By: PERLANCAR - Pass 'formatters' and 'layouter' arguments to before_install_routines hook. 0.013 2017-07-11 Released-By: PERLANCAR - Allow multiple formatters. 0.012 2017-07-02 Released-By: PERLANCAR - [optimize] init_target: Reuse multilevel log routine from hook for log routines of all levels. - [Bugfix] Fix string level passed to layouter when logger is a multilevel logger. 0.011 2017-06-30 Released-By: PERLANCAR - [Incompatible change] In hook argument "routines", change $flags to $type to be more general. The value can be 'log_sub', 'log_method', 'logml_sub', 'logml_method', 'is_sub', 'is_method'. - Support multilevel log statement log($level, ...) by using LGP:MultilevelLog (included in core distribution). - [Internal] Introduce phase 'create_logml_routine'. - [Test] Add test for LG:Format::None. - [Bugfix] reinit_target() didn't find the correct hash key. 0.010 2017-06-28 Released-By: PERLANCAR - [Bugfix] Don't install log methods to package (vice versa, don't install log subroutines to object package). - [doc] Remove mention of filter. 0.009 2017-06-28 Released-By: PERLANCAR - Remove Log::ger::Filter and 'create_filter' phase because they are unused. - Add Layout. - Add formatter: None. 0.008 2017-06-26 Released-By: PERLANCAR - Util: Add string_level(). 0.007 2017-06-25 Released-By: PERLANCAR - Add custom level test. - Add output: Array. 0.006 2017-06-24 Released-By: PERLANCAR - [Bugfix] Use the correct package when initializing object. 0.005 2017-06-23 Released-By: PERLANCAR - [Incompatible change] Another round of internal refactoring and interface changes. New: Log::ger::{Plugin,Format,Filter}. Every plugin (including filter, format, output) can be set on a per-target basis or globally. The term 'hooks' is in again. Add 'create_routine_names' phase. Remove 'after_create_log_routine', 'after_create_log_is_routine'. Move FAQ & internals doc to Log-ger-Manual dist. 0.004 2017-06-21 Released-By: PERLANCAR - [Bugfix] Log::ger::Output didn't have VERSION. 0.003 2017-06-21 Released-By: PERLANCAR - Split Log::ger::Output::Screen to its own dist so this dist can be more minimalist and that module can be tested e.g. with Capture::Tiny etc. - String output: add option append_newline to allow disable appending newline. - import(): No need to turn category 'Foo::Bar' -> 'foo.bar'. - [doc] Update module name Log::ger::LogAny -> Log::ger::Output::LogAny. 0.002 2017-06-21 Released-By: PERLANCAR - [Incompatible change] Reorganize internals & fix a couple of doc typos. - Add outputs: Null, String (mainly for testing). - Formatter: format undef as '' like in Log::Any. - Screen output: Add hooks for Progress::Any::Output::TermProgressBarColor, like in Log::Any::Adapter::Screen. - Add some tests. 0.001 2017-06-19 Released-By: PERLANCAR - First release.