记录 | error() 被发送到 FileHandler... 但不是其他日志记录级别
logging | error() gets sent to FileHandler... but not other Logging Levels
我可以将 error 日志存储到文件中...但不能 info() 或任何其他 Logging Levels.
我做错了什么?
如何将任意级别的日志存储到 FileHandler?
code.py
import sys
import logging
def setup_logging():
global logger
logger = logging.getLogger()
formatter = logging.Formatter('%(asctime)s - %(name)s - %(levelname)s - %(message)s')
open('data_module.log', 'w').close() # empty logs
global fileHandler
fileHandler = logging.FileHandler('data_module.log')
fileHandler.setFormatter(formatter)
fileHandler.setLevel(logging.DEBUG)
logger.addHandler(fileHandler)
logger.error('Started') # info
logger.info('information') # info
test.py
:
import code as c
c.setup_logging()
with open('data_module.log', 'r') as fileHandler:
logs = [l.rstrip() for l in fileHandler.readlines()]
open('data_module.log', 'w').close() # empty logs
assert len(logs) == 2
错误:
AssertionError: assert 1 == 2
如果还有什么我应该添加到 post 的,请告诉我。
您需要为记录器本身设置级别:
logger.setLevel(logging.DEBUG)
默认的日志级别是WARN:当你写一个DEBUG级别的消息时,记录器不会处理它(即将它发送给处理程序)。您添加的处理程序永远不会被调用。
处理程序可以有自己的级别,但只有在调用处理程序后才会查询。如果记录器向只对 INFO+ 消息感兴趣的处理程序发送 DEBUG 消息,它什么都不做。
我可以将 error 日志存储到文件中...但不能 info() 或任何其他 Logging Levels.
我做错了什么?
如何将任意级别的日志存储到 FileHandler?
code.py
import sys
import logging
def setup_logging():
global logger
logger = logging.getLogger()
formatter = logging.Formatter('%(asctime)s - %(name)s - %(levelname)s - %(message)s')
open('data_module.log', 'w').close() # empty logs
global fileHandler
fileHandler = logging.FileHandler('data_module.log')
fileHandler.setFormatter(formatter)
fileHandler.setLevel(logging.DEBUG)
logger.addHandler(fileHandler)
logger.error('Started') # info
logger.info('information') # info
test.py
:
import code as c
c.setup_logging()
with open('data_module.log', 'r') as fileHandler:
logs = [l.rstrip() for l in fileHandler.readlines()]
open('data_module.log', 'w').close() # empty logs
assert len(logs) == 2
错误:
AssertionError: assert 1 == 2
如果还有什么我应该添加到 post 的,请告诉我。
您需要为记录器本身设置级别:
logger.setLevel(logging.DEBUG)
默认的日志级别是WARN:当你写一个DEBUG级别的消息时,记录器不会处理它(即将它发送给处理程序)。您添加的处理程序永远不会被调用。
处理程序可以有自己的级别,但只有在调用处理程序后才会查询。如果记录器向只对 INFO+ 消息感兴趣的处理程序发送 DEBUG 消息,它什么都不做。