我想创建一个基于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 >Sent From File
对于现在调用CreateError的文件名是LogCallFile.py,请考虑将日志行更改为:
LogCallFile.py#DEBUG#2015-02-21 11:48:56,819##63#Error Message >Sent From File