我有一个函数,希望从中输出日志。日志文件是程序输出的一部分,记录函数执行何时执行了什么操作(即不仅仅是调试或事后分析),因此我想将它们存储在特定位置。该位置从配置文件中加载,但我想记录读取配置文件的成功或失败!
因此,在读取配置之前无法创建日志文件,但我不想在记录过程之前读取配置。
是否有一种方法可以推迟一组日志语句的写入,直到稍后?下面是该函数的简化版本:显然,它无法运行,因为
看起来
因此,在读取配置之前无法创建日志文件,但我不想在记录过程之前读取配置。
是否有一种方法可以推迟一组日志语句的写入,直到稍后?下面是该函数的简化版本:显然,它无法运行,因为
logfile
直到以后才可用。看起来
basicConfig(..., delay=True)
可能是答案,但它似乎只处理第一个日志事件的延迟。是否有更多日志事件的答案?import logging
import json
def record(config):
logger = logging.getLogger(LOG)
logging.basicConfig(filename=logfile, level=logging.INFO)
logger.info('Start of continuous sampling')
# Load the config file
try:
config = json.load(open(config_file))
logfile = config['logfile']
logger.info('Config file found')
except IOError:
logger.critical('Config file not found')
sys.exit()
delay
就像懒加载,它会在第一次调用info
、warn
、error
等函数时才进行写入。 - user1767754