想要日志文件名称中的日期时间

当我创建我的日志文件时,我希望名称包含日期时间。

现在,在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

上一篇: Want datetime in logfile name

下一篇: How do you get the time and date in python?