-------------------------
0.2.0 - February 10, 2024
-------------------------

^^^^^^^^^^^^^^^^^^^^^^^^^
Removals and Deprecations
^^^^^^^^^^^^^^^^^^^^^^^^^

 * Python 3.6 support removed
 * Python 3.7 support is deprecated and will be removed in a future release

^^^^^^^^^^^^^^^^^^^^^^
Features and Additions
^^^^^^^^^^^^^^^^^^^^^^

 * Added support and feature compatiblity for Python 3.12

   * Added ``burin.config.logAsyncioTasks`` option and *taskName* property to
     ``BurinLogRecord`` (*taskName* is always **None** on Python 3.7 as task
     names weren't added to asyncio until 3.8)
   * Added ``burin.get_handler_by_name`` function
   * Added ``burin.get_handler_names`` functions
   * Added ``BurinLogger.get_children`` method
   * Added ``BurinFilter`` and ``BurinFilterer`` classes so that filterer
     checks can return a ``BurinLogRecord`` instance
   * Added checking of *flushOnClose* for handlers during shutdown

 * Added support and feature compatiblity for Python 3.11

   * Added ``burin.get_level_names_mapping`` function
   * Added ``BurinSyslogHandler.create_socket`` method
   * Improved ``BurinTimedRotatingFileHandler.should_rollover`` so if target is
     not a normal file the check doesn't run repeatedly and will get
     rescheduled
   * Improved efficiency of finding first non-internal frame during logging
     event, especially if current frame is unavailable
   * Added access denied exception handling on initialization of
     ``BurinNTEventLogHandler``

 * Added optional *level* parameter to all burin handlers so a separate
   ``BurinHandler.set_level`` call isn't needed after creating a handler
 * Enabled a single dictionary argument to be used with '{' and '$' style log
   records, just as they could be used for '%' style records
 * Added *filedelay* parameter to ``burin.basic_config``
 * If running on Python 3.11 or greater then '$' style formatters will use
   ``string.Template.is_valid()`` for more efficient validation checking
 * Added ``BurinPercentLogRecord`` to process records with '%' style
   formatting
 * ``BurinLogRecord`` is now a base class that doesn't do any formatting itself

^^^^^
Fixes
^^^^^

 * Fixed potential referencing issues by moving attributes
   ``logMultiprocessing``, ``logProcesses``, ``logThreads``, and
   ``raiseExceptions`` to new ``burin.config`` object
 * Fixed issue where '$' style formatters would return **None** after formatting
 * Fixed extra arguments not getting passed through from ``burin.exception``
   and ``BurinLogger.exception``
 * Fixed ``NOTSET`` log level missing from main burin module
 * Fixed ``burin.get_level_name`` return value for unknown level names
 * Fixed ``BurinBufferingFormatter`` not assigning default formatter properly
 * Fixed issue where ``BurinLogRecord.msecs`` could round to 1000 (based on
   Python 3.11 fix)
 * Fixed $ style formatter to use correct time search pattern (based on Python
   3.11 fix)

^^^^^^^^
Internal
^^^^^^^^

 * Created internal package _log_records
 * Renamed internal package _logging to _loggers
 * ``BurinHandler`` no longer inherits from ``logging.Handler``, aside from
   Burin specific changes though functionality should remain identical
 * In fallback ``current_frame`` function the exception object itself is used
   instead of going through ``sys``
 * More methods or other functions from the standard ``logging`` library have
   been re-created or overridden in Burin classes

^^^^^^^^^^^^
Dependencies
^^^^^^^^^^^^

 * Replaced Flake8 with Ruff as dev dependency for linting
 * Updated Sphinx doc dependency to 7.26
 * Updated sphinx-rtd-theme doc dependency to 2.0.0
 * Added Pytest and Coverage dependencies for testing
 * Removed Flit dependency for building

^^^^^^^^^^^^^^^^^^^^^
Build and Environment
^^^^^^^^^^^^^^^^^^^^^

 * Pipenv is no longer used in the project, so all related files (Pipfile,
   Pipfile.lock) have been removed
 * Hatch is now used for both environment management, task running, and
   building

--------------------
0.1.0 - June 2, 2022
--------------------

 * First formal release.
