Python 消除日志消息中的字符串填充
我正在使用日志过滤器打印日志消息,其中包括一些常规日志框架中不存在的自定义字段 例如:Python 消除日志消息中的字符串填充,python,logging,filter,Python,Logging,Filter,我正在使用日志过滤器打印日志消息,其中包括一些常规日志框架中不存在的自定义字段 例如: class NISARLogger(object): def __init__(self, filename): self.filename = filename fid = logging.FileHandler(filename) formatter_str = '%(asctime)s, %(levelname)s, %(pge)s, %(mo
class NISARLogger(object):
def __init__(self, filename):
self.filename = filename
fid = logging.FileHandler(filename)
formatter_str = '%(asctime)s, %(levelname)s, %(pge)s, %(module)s, %(error_code)i, \
%(source)s:%(line_number)i, "%(error_name)s: %(message)s"'
formatter = logging.Formatter(formatter_str)
fid.setFormatter(formatter)
self.logger = logging.getLogger(name="NISAR")
self.logger.setLevel(logging.DEBUG)
self.logger.addHandler(fid)
def log_message(self, class_filter, message):
xfilter = class_filter()
log_funct = getattr(self.logger, xfilter.level)
self.logger.addFilter(xfilter)
log_funct(message)
def close(self):
logging.shutdown()
除了我的日志如下所示之外,一切似乎都正常工作:
2020-08-18 14:41:07,431, INFO, QA, misc, 100000, '../verify_rslc.py':70, "N/A: Opening file L_JOINT_00213_LINE12_RUN1_FP_12122019134617.h5 with xml spec /Users/cmoroney/Desktop/working/NISAR/src/GitHub/QualityAssurance/xml/nisar_L1_SLC.xml"
2020-08-18 14:41:07,432, INFO, QA, misc, 100000, '/Users/cmoroney/Desktop/working/NISAR/src/GitHub/QualityAssurance/quality/SLCFile.py':28, "N/A: Opening file L_JOINT_00213_LINE12_RUN1_FP_12122019134617.h5"
其中,“100000”(错误代码参数)和文件名(源参数)之间有大量填充,这两个参数都是通过“addFilter”调用传递到记录器的额外参数。我尝试过在formatter_str变量中测试“source”和“error_code”字段的长度,但没有成功。知道那个填充是从哪里来的吗?额外的空间来自源代码本身第二行开头的空白
formatter_str = '%(asctime)s, %(levelname)s, %(pge)s, %(module)s, %(error_code)i, \
%(source)s:%(line_number)i, "%(error_name)s: %(message)s"'
请尝试以下方法:
formatter_str = ('%(asctime)s, %(levelname)s, %(pge)s, %(module)s, %(error_code)i, '
'%(source)s:%(line_number)i, "%(error_name)s: %(message)s"')