0

在下面的代码中,我从 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")
4

0 回答 0