【发布时间】:2020-01-15 22:53:45
【问题描述】:
我的 python 代码可以很好地创建一个日志文件,其中包含执行代码的名称和日期 -
例如-
我今天运行代码它会创建日志文件 - logfile_2020-01-15.log
我明天运行代码,它将创建日志文件 - logfile_2020-01-16.log 等等。
现在的问题是,如果我的代码从今天开始执行并持续运行 8 天。它应该创建 8 个日志文件 - 每天 1 个文件:logfile_2020-01-15.log to logfile_2020-01-23.log
但这并没有发生。启动代码时,它会继续登录同一文件:logfile_2020-01-15.log。
谁能帮我修改代码-
import datetime
import logging
import schedule
class Workflow:
def setupLoggingToFile():
logFilePath = "C:\ExceptionLogFiles\"
logdate = datetime.datetime.now().strftime('%Y-%m-%d')
logging.basicConfig(
format='%(asctime)s %(name)-12s %(levelname)-8s %(message)s',
datefmt='%m-%d-%y %H:%M:%S',
level=logging.DEBUG,
handlers=[RotatingFileHandler(logFilePath + "logfile_"+logdate+".log",maxBytes=10485760, backupCount=100)])
def StartWorkflow(self):
try:
print("New Cron Cycle Started..")
except Exception:
logging.exception("Something went wrong.", exc_info=True)
def StartCron(self):
try:
schedule.every(5).seconds.do(self.StartWorkflow)
while 1:
schedule.run_pending()
time.sleep(1)
except Exception:
logging.debug("CRON was unable to start. Something Wrong in StartCron function.")
logging.exception("CRON was unable to start. Something Wrong in StartCron function.", exc_info=True)
A = Workflow()
A.StartCron()
【问题讨论】:
-
代码中缺少的一些东西。 1)您忘记在 setupLoggingToFile 中包含“self”。 2) RotatingFileHandler 仅在达到一定大小后才轮换日志,在您的情况下为 maxBytes = 10485760。您应该使用 TimedRotatingFileHandler 并将其设置为午夜。见docs.python.org/3/library/logging.handlers.html。 3) 为什么 handlers 是一个列表?
标签: python python-3.x logging