Es ist auch für mich.
main.py
#!/usr/bin/env python
# -*- coding: utf-8 -*-
import logging
import othermodule
LOG_LEVEL = 'DEBUG'
if __name__ == '__main__':
logging.basicConfig(
level=getattr(logging, LOG_LEVEL),
format='%(asctime)s [%(levelname)s] %(module)s | %(message)s',
datefmt='%Y/%m/%d %H:%M:%S',
)
# test
logger = logging.getLogger(__name__)
logger.critical('critical message')
logger.error('error message')
logger.warning('warning message')
logger.info('info message')
logger.debug('debug message')
othermodule.test()
othermodule.py
#!/usr/bin/env python
# -*- coding: utf-8 -*-
import logging
def test():
_logger = logging.getLogger(__name__)
_logger.critical('critical message')
_logger.error('error message')
_logger.warning('warning message')
_logger.info('info message')
_logger.debug('debug message')
$ python main.py
2017/01/01 00:00:00 [CRITICAL] main | critical message
2017/01/01 00:00:00 [ERROR] main | error message
2017/01/01 00:00:00 [WARNING] main | warning message
2017/01/01 00:00:00 [DEBUG] main | info message
2017/01/01 00:00:00 [INFO] main | debug message
2017/01/01 00:00:00 [CRITICAL] othermodule | critical message
2017/01/01 00:00:00 [ERROR] othermodule | error message
2017/01/01 00:00:00 [WARNING] othermodule | warning message
2017/01/01 00:00:00 [DEBUG] othermodule | info message
2017/01/01 00:00:00 [INFO] othermodule | debug message
--level = getattr (logging, LOG_LEVEL)
Angenommen, die Protokollstufe wird anhand der aus config usw. erhaltenen Zeichenfolge festgelegt.
logging # debug
verwenden, können Sie nicht nach Modulen teilen und werden vom Root-Logger getroffen. Verwenden Sie also logging # getLogger
, um den entsprechenden Logger zu erhalten.logging # basicConfig
festlegen, können Sie auch den Logger des vom Import verwendeten Moduls sofort festlegen.Attribut | Erläuterung |
---|---|
%(asctime)s |
datefmt Protokollgenerierungszeit gemäß |
%(levelname)s |
Name der Protokollebene |
%(module)s |
Modulname |
%(message)s |
Nachricht protokollieren |
Recommended Posts