Skip to content

Commit

Permalink
Bump to v0.4.0
Browse files Browse the repository at this point in the history
  • Loading branch information
akhlakm committed Sep 8, 2024
1 parent 184aff9 commit 2899ef8
Show file tree
Hide file tree
Showing 4 changed files with 26 additions and 16 deletions.
7 changes: 4 additions & 3 deletions examples/main.py
Original file line number Diff line number Diff line change
Expand Up @@ -19,11 +19,12 @@ def callback(msg : str):

log.setFile(open('example.log', 'w+'))
log.setConsoleTimes(show=True)
log.setLevel(log.Level.DEBUG)

# Override the level of a named sub-logger.
log.setLoggerLevel('module', log.Level.INFO)
# Default level set for all loggers.
log.setLevel(log.Level.ERROR)

# Override the level of a named sub-logger to info.
log.setLoggerLevel('module', log.Level.INFO)

s = log.info("Staring main --", id=23)
mainfn()
Expand Down
3 changes: 2 additions & 1 deletion examples/module.py
Original file line number Diff line number Diff line change
@@ -1,6 +1,7 @@
import pylogg

log = pylogg.New("module")
# Log level 3 (warn) is set by the module.
log = pylogg.New("module").level(3)

def run():
log.fatal("Hello world")
Expand Down
1 change: 1 addition & 0 deletions make.sh
Original file line number Diff line number Diff line change
Expand Up @@ -29,6 +29,7 @@ fi

bump() {
# Bump the version number.
echo "Note: This may not work in MACOS!"
VERSION=$(sed -n 's/__version__ = "\(.*\)"/\1/p' pylogg/__init__.py)
echo "version = $VERSION"
VERSION=$(python -c "v='$VERSION'.split('.');print('%s.%s.%d' %(v[0], v[1], int(v[2])+1))")
Expand Down
31 changes: 19 additions & 12 deletions pylogg/__init__.py
Original file line number Diff line number Diff line change
Expand Up @@ -4,7 +4,7 @@
"""

__version__ = "0.3.3"
__version__ = "0.4.0"
__author__ = "Akhlak Mahmood"

import os
Expand Down Expand Up @@ -132,14 +132,22 @@ def __init__(self, name) -> None:
}

def update(self, key, value):
""" Set individual setting of the named logger. """
""" Update individual settings of the named logger. """
avail = [v for v in vars(_config) if not v.startswith("_")]
if key in avail:
self.conf[key] = value
else:
raise AttributeError("Unknown setting: '%s'\nAvailable: %s" %(key, avail))
return self

def level(self, level : int | Level):
""" Override the level of this named logger. """
return self.update('level', level)

def set(self, key, value):
""" Set individual settings of the named logger. """
return self.update(key, value)

def setCallback(self, cb: callable):
""" Add a callback function to pass the formatted log messages.
Set None to remove.
Expand All @@ -149,12 +157,12 @@ def setCallback(self, cb: callable):
self.conf['callback'] = cb

def _log(self, level, stack, msg, *args, **kwargs):
# Update with the module level configurations.
# Update with the module level configurations,
# in case it was changed after importing the named logger.
self.__dict__.update(_conf.__dict__)
# Update with sub-logger level configurations.

# Override with sub-logger level configurations.
self.__dict__.update(self.conf)
if self.level < level:
return
_log(self, level, stack, msg, *args, **kwargs)

def fatal(self, msg, *args, **kwargs):
Expand Down Expand Up @@ -274,13 +282,12 @@ def _print(conf : _config, level, fmtmsg, timestr, caller):
print(line, file=sys.stdout, flush=True)
return line

def _log(conf, level : int, stack : tuple, msg : str, *args, **kwargs):
if _conf.level < level:
return
def _log(conf : _config, level : int, stack : tuple, msg : str, *args, **kwargs):
# changed in v0.3.4: use the level set to the named log, not the global level
max_level = _levelOverrides[conf.logger] if conf.logger in _levelOverrides else conf.level

if conf.logger in _levelOverrides:
if _levelOverrides[conf.logger] < level:
return
if max_level < level:
return

# Caller info
lineno = stack[1]
Expand Down

0 comments on commit 2899ef8

Please sign in to comment.