【发布时间】:2015-02-21 10:41:45
【问题描述】:
我正在尝试创建基于 python 记录器库的自定义日志。 主要目标是创建可以从整个应用程序中的任何脚本调用的主日志,并将日志数据写入同一个日志文件。 问题是因为 logger 嵌入到自定义类中,所以函数的每次调用都会写入日志数据,就好像调用是从主文件进行的一样。
假设我有自定义日志类的代码:
import os
import logging
from logging import *
from datetime import *
class omri_logging:
@staticmethod
def logcreate (severity = logging.DEBUG, filename =os.path.basename(__file__)):
today = datetime.today()
week = today.strftime("%U")
LogName = 'MainLog' + week + '.log'
FORMAT = "%(filename)s#%(levelname)s#%(asctime)s#%(funcName)s#%(lineno)d#%(message)s"
logging.basicConfig(filename=LogName,
level=severity,format=FORMAT,
)
@staticmethod
def CreateError (msg):
logging.error(msg)
logcreate 函数将在调用它的位置接收文件名。如何更改记录器格式化程序以将此文件名作为记录文件。 获取以下日志示例:
omri_logger.py#DEBUG#2015-02-21 11:48:56,819##63#Error Message >从文件发送
到下面的日志行,考虑现在 CreateError 调用的文件名是 LogCallFile.py
LogCallFile.py#DEBUG#2015-02-21 11:48:56,819##63#Error Message >从文件发送
【问题讨论】: