如何使用python日志记录模块旋转外部文件?

时间:2018-10-31 08:44:17

标签: python windows logging

我有一个程序正在填充的日志文件。 我编写了一个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 文件中写入内容?

0 个答案:

没有答案