Last active
January 27, 2021 06:58
-
-
Save todd-cook/883662ba19eb5a3bb8b372733ec7f6a4 to your computer and use it in GitHub Desktop.
python logging dictionaries examples
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
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