我有一个程序正在填充的日志文件。 我编写了一个python代码,以在达到大小阈值时对该文件进行日志记录旋转。
import logging
import time
import logging.handlers
def get_log_format(logger_name):
return '%%(asctime)s | %%(levelname)s | dd.%s | %%(name)s(%%(filename)s:%%(lineno)s) | %%(message)s' % logger_name
def get_log_date_format():
return "%Y-%m-%d %H:%M:%S %Z"
LOGGING_MAX_BYTES=1024*10
log_file='stdout.log'
logging.basicConfig(filename=log_file,level=logging.DEBUG)
log = logging.getLogger(__name__)
formatter = logging.Formatter(get_log_format(log_file), get_log_date_format())
file_handler = logging.handlers.RotatingFileHandler(log_file, maxBytes=LOGGING_MAX_BYTES, backupCount=5)
file_handler.setFormatter(formatter)
log.addHandler(file_handler)
while True:
time.sleep(30)
log.debug("Dummy mesg")
问题是,由于我不是从python文件写入日志,除非执行log.debug('something')
,否则该程序不会旋转文件,而与文件大小无关。
问题是,我无法在 stdout.log 文件中放置“虚拟消息”。
有没有一种方法可以使python代码了解 stdout.log 文件的大小,而无需在 stdout.log 文件中写入内容?