想要日志文件名称中的日期时间
当我创建我的日志文件时,我希望名称包含日期时间。
现在,在Python中,你可以得到当前的日期时间为:
>>> from datetime import datetime
>>> datetime.now()
datetime.datetime(2012, 2, 3, 21, 35, 9, 559000)
str版本是
>>> str(datetime.now())
'2012-02-03 21:35:22.247000'
不是一个非常好的附加到日志文件名称的str! 我想我的日志文件是这样的:
mylogfile_21_35_03_02_2012.log
有没有什么蟒蛇可以做到这一点很容易做到? 请注意,我正在创建日志文件
fh = logging.FileHandler("mylogfile" + datetimecomp + ".log")
有小费吗?
您需要datetime.strftime()
,这允许您使用C的strftime()
所有指令格式化时间戳。 在你的具体情况下:
>>> datetime.now().strftime('mylogfile_%H_%M_%d_%m_%Y.log')
'mylogfile_08_48_04_02_2012.log'
你也可以使用一个TimedRotatingFileHandler
来处理每天(或任何你想要的)的日期和翻转。
from logging.handlers import TimedRotatingFileHandler
fh = TimedRotatingFileHandler('mylogfile', when='midnight')
默认情况下,格式将取决于翻转间隔:
系统将通过将扩展名附加到文件名来保存旧的日志文件。 这些扩展名基于日期和时间,使用strftime格式,取决于翻转间隔,使用strftime格式%Y-%m-%d_%H-%M-%S
或其前导部分。
但是,您可以通过执行以下操作来修改此处显示的内容:
from logging.handlers import TimedRotatingFileHandler
fh = TimedRotatingFileHandler('mylogfile', when='midnight')
fh.suffix = '%Y_%m_%d.log'
是。 查看日期时间API,特别是strftime
。
from datetime import datetime
print datetime.now().strftime("%d_%m_%Y")
链接地址: http://www.djcxy.com/p/40915.html