在下面的代码中,我从 call.py 脚本调用 log.py,如下所示。我已经实现了日志处理程序,我在 log.py 中设置日志级别,并在我想将日志打印到文件时调用 printlog 函数。但是,在这里我试图将日志轮换集成到 log.py 中。那是在达到特定日志文件大小的情况下,我需要轮换。请协助解决此问题。感谢进阶
日志文件
import logging
import sys
import glob
import logging.handlers
def printlog(logtype,module,line,msg):
#Below fields to be set for the Log Level
loglevel = logging.DEBUG
logL1 = "logging.DEBUG"
#
LOG_FILENAME = 'logging_rotatingfile_example.out'
# Set up a specific logger with our desired output level
my_logger = logging.getLogger('MyLogger')
my_logger.setLevel(logging.DEBUG)
# Add the log message handler to the logger
handler = logging.handlers.RotatingFileHandler(
LOG_FILENAME, maxBytes=2, backupCount=5)
my_logger.addHandler(handler)
#
#Setting config for Log Level
logging.basicConfig(
level=loglevel,
filename=LOG_FILENAME, #Setting Log file name & location
format='%(asctime)s %(levelname)-8s %(msg)s',
datefmt='%Y-%m-%d %H:%M:%S')
#print ("LOGTYPE = " +logtype)
#print ("LOGLEVEL = " +logL1)
str(line)
if ("INFO" in logtype):
#if (logtype in loglevel):
logging.info(" | " + module + " | " + str(line) + " | " + msg)
if("DEBUG" in logtype):
logging.debug(" | " + module + " | " + str(line) + " | " + msg)
调用.py
import log
from inspect import currentframe, getframeinfo
#To Get line num
###Should Be added in all Files to get linenum
cf = currentframe()
filename = getframeinfo(cf).filename
##########
log.printlog("DEBUG",filename,cf.f_lineno,"Hello debug")
log.printlog("INFO",filename,cf.f_lineno,"Hello Info")