Bug Fixes
- Fixed the issue with missing 'logme.ini' file caused RecursionError: maximum recursion: issue ticket.
Bug Fixes
- Changed the python_requires from >=3 to >=3.6, as many places supports f-string format notation.
- Fixed a typo in readthedocs Advanced, logme.reset_configuration should be logme.reset_config
Improvement
- Allowing configuration of datefmt, and style for master level formatters in logme.ini.
- This change does not break the previous version, you can still specify only the fmt
- Does not apply to logme init or logme add {config_name} command for generate automatic
- Default style will still be { if none specified
- example:
[my_config]
level = DEBUG
formatter =
fmt: {asctime} - {name} - {levelname} - {message}
datefmt: %Y/%m/%d
style: {
stream =
type: StreamHandler
active: True
level: DEBUG
file =
type: FileHandler
active: True
level: DEBUG
formatter: {name} :: {funcName} :: {levelname} :: {message}
filename: mylogpath/foo.log
Bug Fixes
- Error handling for color_provider.py was outputting invalid error message when invalid style was passed in.
Misc
- Removed config.py, and moved everything configuration file related to bnmutils repository. Moved everything logme configuration related to utils.py
- Changed exception.py::InvalidConfig to InvalidLoggerConfig
Bug Fixes
- Made the
name
property in LogmeLogger object unsettable, as overriding/reassignment of this property will create a new logging.Logger object, and this results in lose of configured all handlers.
Improvement
- Allowing color output in the terminal for
StreamHandlers
! - Running
logme upgrade
will now automatically applycolors
configuration in yourlogme.ini
Misc
- Improved testing in
test_log.py
config.py
- Added
get_logger_config()
to allow getting only configurations of loggers inlogme.ini
. This enablesget_config_content()
to get color configurations - Added ``get_color_config()``to get color configurations
- Added
LogmeLogger.reset_config()
- Removing the previous configured logger by deleting the logger from
logging.Logger.manager.loggerDict
, instead of removing handlers on the existing loggers. - Added
disabled
property for disabling logger.
- Removing the previous configured logger by deleting the logger from
Improvements
- allowing multiple of the same type of handlers to be added, and retrieved by name
- added version to the cli, to check version, do
logme -v
- added
upgrade
command to upgradelogme.ini
file to current version
Bug Fixes
- Minor change in
config.py::read_config()
, ensure ConfigParser.read() accepts string format filepath. As os.Pathlike is not available in older version of python3, e.g 3.6.0
Improvements
- Improvements on docs, included documentation for
Adhoc Config Change
andUsing Logme in installable packages
- Int value can now be passed as logger/handler level configuration
master_level
andmaster_formatter
attribute can be reconfigured by reassigning values, int/str value formaster_level
, and str value formaster_formatter
- Handlers can now be reconfigured after logger creation by calling
reconfig_handler
method on specific handler
Bug Fixes
- Fixed f string typo in
__init__.py::_get_logger_decorator()
- Fixed a bug in
utils.py::conf_item_to_dict()
, to split only on the first ': '
Misc
- Code clean up on providers.py
Improvements
- Simplified the logme.log decorator
- If decorated class is extended,
obj.logger
attribute is carried from the decorated parent class to extended classes - Core functionality stays the same
Bug Fixes
- Fixed the issue with decorated class being none extendable.
type()
on decorated objects now returns correct types
Misc
- Changed
LogDecorator
class toLogProvider
as it is no longer a decorator logme.log
decorator used by function / class is now resolved from_get_logger_decorator()
- Added test cases for decorated class extension.
- Minor changes on
strip_blank_recursive()
to catchSyntaxError
when passing logger format. - Made test cases for changing
master_level
on logger after instantiation