Revision history for Debug-Easy

0.01    2011
        Initial private use release.

0.02    June 14, 2013
        Actual public release

0.03    January 8, 2014
        Minor operational improvements

0.04    March 11, 2014
        Parameters for initialization are now case-insensitive.

0.05    April 14, 2014
        Multiline output only shows the benchmark time for the first line to
        avoid confusion.  This fix was previously listed in version 0.04, but
        was never actually implemented, sorry.

0.06    July 18, 2014
        Benchmark data turned on for first line only for multiline output.

	    Corrections and additions to documentation.

        Additions to code comments

        Simplified 'debug' object and split it into two.

        Added tests to build process

0.07    July 19, 2014
        Added the ability to customize the debug level labels
        
        Fixed the warning message in the END block that was reported during testing.
        This was caused when the module is loaded, but the object never created (which
        happens in one of the tests).
        
        Additional code comments added
        
        Tweaks to the Makefile.PL build script to allow for parallel testing

0.08    July 23, 2014
        Added DEBUGWAIT experimental debug level.

0.09    July 25, 2014
        Removed the Perldocs for 'send_to_logger' and made it an
        internal class only by renaming it '_send_to_logger'.
        
        Made 'Data::Dumper::Simple' optional, and will fall back to
        just 'Data::Dumper' if it cannot find it.

0.10    November 26, 2014
        Made the LogLevel parameter case-insensitive.
        Tweaked the Makefile.PL to be more CPAN friendly.

0.11    November 26, 2014
        Data::Dumper::Simple is now a requirement.

        Some of the test files worked incorrectly in Perl versions < 5.10
        That should be fixed now.

0.12    November 27, 2014
        Modified Makefile.PL to be more platform friendly.

0.20    March 21, 2015
        Version number bump, because of the drastic change of switching to
        Data::Printer and removing Data::Dumper::Simple.
        
        Data:Printer's format more closely goes along with this module's
        output format.

        Fixed a small bug if you passed a mixture of strings and references
        in the anonymous array.  Now references are now passed properly
        through Dumper.

0.30    March 31, 2015
        Another version number bump.  I did a little bit of backtracking.
        'Data::Printer' and 'Data::Dumper::Simple' are now optional.  They
        will be used if available, otherwise 'Data::Dumper' is used.
        
        Also, '__LINE__' is no longer necessary.  '__LINE__' was used as
        'caller' never seemed to give the right line number.  I believe I
        have solved that problem.  The code checks for a '__LINE__' parameter,
        but doesn't use it.  You may leave this parameter out entirely.

0.31    April 06, 2015
        Ouch, it seems 'Module::Load::Conditional' is more trouble than it
        is worth.  Hopefully, this fix will allow more tests to succeed on
        different platforms, as version 0.30 failed a lot of them. Seriously,
        I got a lot of failed Test::Reporter reports back.  I am so sorry.

        I have chosen my own way of testing and loading modules, and it
        seems to be working much better.

0.32    May 24, 2015
        Improved (fixed really) the PREFIX setting.

0.33    May 25, 2015
        Added %F to th prefix fields.  It inserts the script's name.

0.34    May 31, 2015
        The Data::* module loading has been fixed, and yes, another
        required module has been added to the install.

        ** Please don't use this version.  It's output is ugly and messed up.

0.35    June 10, 2015
        Wow, I sure screwed up 0.34.  Sorry about that.  I put the padding in
        the wrong portion of the output.  I'm not sure if it's worth placing
        in there anymore anyway.

        Added a few new filters to 'prefix'.

        It now detects if running as a child, and indicates as such.  Helpful
        for forking scripts.

0.36    June 13, 2015
        Lots of fixes.
        
        * Complete rewrite of the line number and caller location algorithmn.
          It now properly prints exactly the calling location, it's proper line
          number, and the preceeding line numbers from where those subroutines
          were called.  You get the entire tree in names and line numbers.
          This may slightly slow down the output, but it's very neglegible.

        * Indenting of output for nested calls done properly now.  Only one
          space per level.  No need to use up even more precious line space.

        * Line number(s) are auto-padded for proper alignment (at least in
          subsequent output).  This behavior matches the subroutine name
          padding behavior.
        
        * Speaking of subroutine name padding... the default has been changed
          from 25 spaces to 15.  You, of course, can change that when you
          instantiate the object, as usual.

        * Line number padding is adjustable now too.

        * You can now indicate on output whether running as a forked child or
          the parent.  This is with the "%f" prefix placeholder.  It only
          prints a "P" for parent, or "C" for child.  This adds to the
          behavior of version 0.35, where it only printed it was a child
          when the child exited (which it still does).

0.37    June 13, 2015
        Important fix
        
        Ok, the verbosity of the tree was a bit much I see.  So... I added
        a couple new prefix options.
        
        * %s gives you just the caller line number, no nested numbers
        * %S gives you just the caller name, no nested names mile long.
        
        Also, you can define a specific prefix for each log level.  The default
        is short (above) callers and numbers, BUT the DEBUGMAX prefix is
        using the detailed %P and %l.

1.00    June 15, 2015
        Major changes, thus a version upgrade.  Also, this is not backwards
        compatible with earlier versions that have custom prefixes.  You have
        been warned!

        The filters are completely different.  Read the POD to find out.
        Nevertheless, they are easier to read now, and no longer cryptic.
        This renders the older versions obsolete.
        
        Log level checking is faster, and thus will not significantly slow
        down your code.

        ** This version was removed from CPAN due to a prefix error related
           to the new changes

1.01    July 1, 2015
        Prefix issues have been fixed.  Everything is back to normal.

1.02    July 1, 2015
        Ugh... missed the date and time

1.03    July 10, 2015
        Benchmarking fixes.

1.04    July 10, 2015
        Made some changes in benchmarking and loglevel output. Nothing major.
        Mostly fixes and cosmetic changes.

1.05    July 10, 2015

        Renaming of some internal variables for easier reading.
        Cleaned up with Perltidy.

1.06    October 12, 2015

        Restored basic Data::Dumper support, but only for legacy compatibility.

1.11    February 10, 2016

        Revamped the documentation to make it easier to read.  There were
        previous POD issues.  They should be corrected now.  Consolidated
        some documentation, once again for readability.

        Discouraged the usage of the "debug" method in favor of the direct
        ERR, WARN etc. methods.  "debug" remains for legacy compatibility,
        however.

1.13    July 19, 2016

        Added option for Threads.

1.14    July 30, 2016

        Addressed threading code for non-threaded Perls, at install
        instead of runtime.  Build.PL and MakeMaker.PL actually
        physically removes the code reporting on thread-specific
        information.

1.15    October 19, 2016

        Fixed thread labeling sprintf issue

1.16    November 22, 2016

        Removed the now defunct "$Modules" from the exportable variables.

        Fixed the code in the "examples" directory.  I am terribly sorry
        these were not working.  I have brought them up to date, and they
        should be functioning properly.

1.17    December 18, 2016

        Added "Best" module dependency.  This was added to allow for automatic
        loading of "Data::Dumper::Simple" or "Data::Dumper", depending on what
        the user has installed in their system.  The "Data::Dumper" package is
        included with the Perl core installation.  So at least "Data::Dumper"
        will work.  The "Data::Dumper::Simple" module is very handy for
        debugging, and I deemed it important to use if it is available.

        If "Data::Dumper" nor "Data::Dumper::Simple" is not your preference
        for variable structure representation, then you will have to load
        your own and use it to generate the debugging output desired.

1.18    March 10, 2017

        Some minor documentation and threads check changes.

1.18.1  March 10, 2017

        Added GitHub info to the documentation.

1.18.2  June 3, 2017

        Fixed the tests.

1.18.3  June 14, 2017

        Apparently the tests were still flakey.  This should fix.

1.19    July 12, 2017

        Dumper sorting and purity is enabled by default

1.20    August 17, 2017

        Removed Data::Dumper::Simple support and the need for Best.
        
        Data::Dumper::Simple takes far too long to start up.  It's nice output
        isn't worth the execution delay.

1.21    June 06, 2018

        Added "%Epoch%" prefix value

1.22    June 08, 2018

        Make it multi-object aware.  Now you can instantiate more than one
        instance using different file handles.

1.23    June 12, 2018

        It seems the Log::Fast documentation on instantiating objects is vague
        Changed "global" to "new".