gpt4 book ai didi

python - 延迟输出到日志文件

转载 作者:行者123 更新时间:2023-12-05 07:38:43 25 4
gpt4 key购买 nike

我有一个函数,我想从中输出日志记录。日志文件是程序输出的一部分,作为函数何时执行操作的记录(即不仅仅是调试或事后分析),所以我想将它们存储在特定位置。该位置是从配置文件加载的,但我想记录读取配置文件的成功或失败!

所以在读取配置之前我无法创建日志文件,但在我可以记录过程之前我不想读取配置。

有没有办法将一组日志语句推迟到以后写入文件?该函数的简化版本如下:显然它不会运行,因为 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()

最佳答案

有多种选择,但这里有两个相当简单的:

选项 1

开始登录临时文件。如果您能够解析配置文件,请复制临时文件内容和 change the logging file handle .如果出现错误,将临时文件转储到标准输出。

选项 2

创建一个包装器类,只要配置文件不可用,它就会延迟对记录器的调用。类似

的东西
class MyLogger(object):
def __init__(self, ...)
self.logger = ... # temp file

def info(self, msg):
self.logger.info(msg)

def changeLogfile(self, f):
self.logger = ... # now writing to f

一旦 config['logfile'] 可用,调用 mylogger.changeLogfile() 并继续记录。

关于python - 延迟输出到日志文件,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/47758330/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com