Release History
0.3.0 - June 8, 2024
Features and Additions
Added option for
BurinSMTPHandlerto usessl.SSLContextfor secure parameter.Added support for
BurinSMTPHandlerto connect using STARTTLS if secure is set and no credentials are.Added support for intervals to be used with
BurinTimedRotatingFileHandlerif when is a weekday (W0-W6) or MIDNIGHT.Changed
BurinTimedRotatingFileHandlerto treat midnight as the beginning of the day if when is a weekday (W0-W6) or MIDNIGHT.Added kerword args of log record to
BurinHandler.handle_erroroutput.
Internal
Modified all handlers to no longer import from any handler in the standard
logginglibrary.Changed
_BurinDollarStyleto call_BurinPercentStyle.__init__directly instead of super().Refactored several tests and added tests for
BurinHandlerandBurinStreamHandler.
Dependencies
Updated Ruff to 0.4.8
Updated PyTest to 8.2.2
Updated Coverage to 7.5.3
Updated Sphinx to 7.3.7
Build and Environment
Moved local project to Hatch 1.12.0 and updated Github Action to also use this version.
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.logAsyncioTasksoption and taskName property toBurinLogRecord(taskName is always None on Python 3.7 as task names weren’t added to asyncio until 3.8)Added
burin.get_handler_by_namefunctionAdded
burin.get_handler_namesfunctionsAdded
BurinLogger.get_childrenmethodAdded
BurinFilterandBurinFiltererclasses so that filterer checks can return aBurinLogRecordinstanceAdded checking of flushOnClose for handlers during shutdown
Added support and feature compatiblity for Python 3.11
Added
burin.get_level_names_mappingfunctionAdded
BurinSyslogHandler.create_socketmethodImproved
BurinTimedRotatingFileHandler.should_rolloverso if target is not a normal file the check doesn’t run repeatedly and will get rescheduledImproved efficiency of finding first non-internal frame during logging event, especially if current frame is unavailable
Added access denied exception handling on initialization of
BurinNTEventLogHandlerAdded optional level parameter to all burin handlers so a separate
BurinHandler.set_levelcall isn’t needed after creating a handlerEnabled 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_configIf running on Python 3.11 or greater then ‘$’ style formatters will use
string.Template.is_valid()for more efficient validation checkingAdded
BurinPercentLogRecordto process records with ‘%’ style formatting
BurinLogRecordis now a base class that doesn’t do any formatting itself
Fixes
Fixed potential referencing issues by moving attributes
logMultiprocessing,logProcesses,logThreads, andraiseExceptionsto newburin.configobjectFixed issue where ‘$’ style formatters would return None after formatting
Fixed extra arguments not getting passed through from
burin.exceptionandBurinLogger.exceptionFixed
NOTSETlog level missing from main burin moduleFixed
burin.get_level_namereturn value for unknown level namesFixed
BurinBufferingFormatternot assigning default formatter properlyFixed issue where
BurinLogRecord.msecscould 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
BurinHandlerno longer inherits fromlogging.Handler, aside from Burin specific changes though functionality should remain identicalIn fallback
current_framefunction the exception object itself is used instead of going throughsysMore methods or other functions from the standard
logginglibrary 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.2.6
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.