3 回答
TA贡献1860条经验 获得超8个赞
您尚未配置日志记录系统,因此它仍然使用默认值(根记录器的级别为 WARN)。
https://docs.python.org/3/library/logging.html#logging.basicConfig说basicConfig
通过使用默认格式化程序创建 StreamHandler 并将其添加到根记录器,对日志记录系统进行基本配置。
首先配置日志系统basicConfig
将创建您的记录器将使用的处理程序和格式化程序:
logging.basicConfig() log = logging.getLogger('hello') log.setLevel(logging.DEBUG) print(log.getEffectiveLevel()) log.debug('debug log') log.critical('critical log')
输出:
10 DEBUG:hello:debug log CRITICAL:hello:critical log
在Logger.callHandlers中,每个处理程序都会将日志记录的级别与其自身的级别进行比较。如果没有任何处理程序,它将使用默认的警告。
TA贡献1864条经验 获得超2个赞
有了StreamHandler
它就会
将日志输出发送到流,例如 sys.stdout、sys.stderr 或任何类似文件的对象”
根据文档
import logging
import sys
# Initialize Logger and set Level to DEBUG
logger = logging.getLogger()
logger.setLevel(logging.DEBUG)
# Initialize a Handler to print to stdout
handler = logging.StreamHandler(sys.stdout)
# Format Handler output
logFormatter = logging.Formatter(
"%(asctime)s %(message)s", datefmt="%m/%d/%Y %I:%M:%S %p"
)
handler.setFormatter(logFormatter)
# Set Handler Level to DEBUG
handler.setLevel(logging.DEBUG)
logger.addHandler(handler)
logger.debug('Debug Info')
>>> 09/19/2020 09:01:00 PM Debug Info
TA贡献1794条经验 获得超7个赞
您需要添加流处理程序
import logging
log = logging.getLogger('hello')
log.setLevel(logging.DEBUG)
# # Create a file handler to store the logs
file_handler = logging.FileHandler('test.log')
log.addHandler(file_handler)
# # Send output to terminal
stream_handler = logging.StreamHandler()
log.addHandler(stream_handler)
log.debug('debug log')
添加回答
举报