Skip to content

Instantly share code, notes, and snippets.

@todd-cook
Last active January 27, 2021 06:58
Show Gist options
  • Save todd-cook/883662ba19eb5a3bb8b372733ec7f6a4 to your computer and use it in GitHub Desktop.
Save todd-cook/883662ba19eb5a3bb8b372733ec7f6a4 to your computer and use it in GitHub Desktop.
python logging dictionaries examples
import logging.config
import sys
def trylog(l):
for e in range(0, 50, 10):
l.log(e, 'level %s' % e)
if __name__ == '__main__':
print(sys.argv[1])
if sys.argv[1] == "1":
print("::root")
trylog(logging)
print("::one")
trylog(logging.getLogger("one"))
print('end')
if sys.argv[1] == "2":
# print(":::: Use default logging config")
print(":::: Configure both root and logger level")
logging.config.dictConfig({'version': 1,
'root': {'level': logging.INFO},
'loggers': {'one': {'level': logging.WARNING}}})
print("::root")
trylog(logging)
print("::one")
trylog(logging.getLogger("one"))
print('end')
if sys.argv[1] == "3":
print(":::: Configure root level, logger is NOTSET")
logging.config.dictConfig({'version': 1,
'root': {'level': logging.INFO},
'loggers': {'one': {'level': logging.NOTSET}}})
print("::root")
trylog(logging)
print("::one")
trylog(logging.getLogger("one"))
print('end')
if sys.argv[1] == "4":
print(":::: No root level, logger is NOTSET")
logging.config.dictConfig({'version': 1,
'loggers': {'one': {'level': logging.NOTSET}}})
print("::root")
trylog(logging)
print("::one")
trylog(logging.getLogger("one"))
print('end')
if sys.argv[1] == "5":
print(":::: None root level, logger is NOTSET")
logging.config.dictConfig({'version': 1,
'root': {'level': None},
'loggers': {'one': {'level': logging.NOTSET}}})
print("::root")
trylog(logging)
print("::one")
trylog(logging.getLogger("one"))
print('end')
if sys.argv[1] == "6":
print(":::: NOTSET root level, logger is NOTSET")
logging.config.dictConfig({'version': 1,
'root': {'level': logging.NOTSET},
'loggers': {'one': {'level': logging.NOTSET}}})
print("::root")
trylog(logging)
print("::one")
trylog(logging.getLogger("one"))
print('end')
"""
demo: (python used is python3 but it shouldn't make
% python testlog.py 1
1
::root
WARNING:root:level 30
ERROR:root:level 40
::one
WARNING:one:level 30
ERROR:one:level 40
end
% python testlog.py 2
2
:::: Configure both root and logger level
::root
INFO:root:level 20
WARNING:root:level 30
ERROR:root:level 40
::one
WARNING:one:level 30
ERROR:one:level 40
end
% python testlog.py 3
3
:::: Configure root level, logger is NOTSET
::root
INFO:root:level 20
WARNING:root:level 30
ERROR:root:level 40
::one
INFO:one:level 20
WARNING:one:level 30
ERROR:one:level 40
end
% python testlog.py 4
4
:::: No root level, logger is NOTSET
::root
WARNING:root:level 30
ERROR:root:level 40
::one
WARNING:one:level 30
ERROR:one:level 40
end
% python testlog.py 5
5
:::: None root level, logger is NOTSET
::root
WARNING:root:level 30
ERROR:root:level 40
::one
WARNING:one:level 30
ERROR:one:level 40
end
% python testlog.py 6
6
:::: NOTSET root level, logger is NOTSET
::root
DEBUG:root:level 10
INFO:root:level 20
WARNING:root:level 30
ERROR:root:level 40
::one
DEBUG:one:level 10
INFO:one:level 20
WARNING:one:level 30
ERROR:one:level 40
end
"""
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment