总结
1、getLogger()返回root
2、getLogger(‘xxx’)返回并继承root
3、name 默认返回 main
4、from xxx import name 返回 xxx
#!/usr/bin/python3
'''
File Name: base.py
Created Time: 2021-05-21 14:13:01
Last Modified: 2021-05-21 14:59:40
Description:
Version:
'''
import logging
print(" ### default logging ###")
logger = logging.getLogger()
logger.warning(logger)
logger = logging.getLogger(__name__)
logger.warning(logger)
print(" ### after set root DEBUG ###")
logger = logging.getLogger()
logger.setLevel(level=logging.DEBUG)
logger.warning(logger)
logger = logging.getLogger(__name__)
logger.warning(logger)
print(" ### after set main INFO ###")
logger.setLevel(level=logging.INFO)
logger.warning(logger)
logger = logging.getLogger()
logger.warning(logger)
print(" ### after set root DEBUG ###")
logger = logging.getLogger()
logger.setLevel(level=logging.DEBUG)
logger.warning(logger)
logger = logging.getLogger(__name__)
logger.warning(logger)
print(" ### get logger inherit name. ###")
logger.info(__name__)
logger = logging.getLogger(__name__)
logger.info(logger)
logger_hello = logging.getLogger("__main__.hello")
logger.info(logger_hello)
print(" ### add file handler ###")
handler = logging.FileHandler("log.txt")
handler.setLevel(logging.INFO)
formatter = logging.Formatter('%(asctime)s - %(name)s - %(levelname)s - %(message)s')
handler.setFormatter(formatter)
logger.addHandler(handler)
print(" ### add console too ###")
console = logging.StreamHandler()
console.setLevel(logging.INFO)
logger.addHandler(console)
logger.info("Finish")
输出
default logging
<RootLogger root (WARNING)>
<Logger main (WARNING)>
after set root DEBUG
<RootLogger root (DEBUG)>
<Logger main (DEBUG)>
after set main INFO
<Logger main (INFO)>
<RootLogger root (DEBUG)>
after set root DEBUG
<RootLogger root (DEBUG)>
<Logger main (INFO)>
get logger inherit name.
add file handler
add console too
Finish
#!/usr/bin/python3
'''
File Name: start.py
Created Time: 2021-05-21 14:23:54
Last Modified: 2021-05-21 14:26:22
Description:
Version:
'''
from base import *
logger.info(logger)
输出
default logging
<RootLogger root (WARNING)>
<Logger base (WARNING)>
after set root DEBUG
<RootLogger root (DEBUG)>
<Logger base (DEBUG)>
after set main INFO
<Logger base (INFO)>
<RootLogger root (DEBUG)>
after set root DEBUG
<RootLogger root (DEBUG)>
<Logger base (INFO)>
get logger inherit name.
add file handler
add console too
Finish
<Logger base (INFO)>