Python中datetime和logging模块如何结合使用?

2026-06-11 10:171阅读0评论SEO资讯
  • 内容介绍
  • 文章标签
  • 相关推荐

本文共计1362个文字,预计阅读时间需要6分钟。

Python中datetime和logging模块如何结合使用?

datetime模块是Python处理时间和日期的标准库。它提供了以下类和功能:

- date:日期对象,包含年、月、日信息。- time:时间对象,包含时、分、秒和微秒信息。- datetime:日期时间对象,结合了日期和时间信息。

常用属性包括:- date:year(年)、month(月)、day(日)- time:hour(时)、minute(分)、second(秒)、microsecond(微秒)

6.1 datetime模块

datetime是python处理时间和日期的标准库

类名 功能说明
?
date 日期对象,常用的属性有year, month, day
?
time 时间对象hour,minute,second,毫秒
?
datetime 日期时间对象,常用的属性有hour, minute, second, microsecond
?
timedelta 时间间隔,即两个时间点之间的长度

主要使用:

datetime.datetiem( ) 、 datetime.timedelta( )

1.datetime类中常用方法:

  • 1.获取当前日期时间:

    datetime.now();

  • 2.日期时间转化为时间戳:

    时间日期对象.timestamp();

    例如:datetime.now().timestamp()

  • 3.时间戳转化为日期时间:

    datetime.fromtimestamp(时间戳)

    例如: datetime.fromtimestamp(1534231316.796308)

  • 4.日期时间对象转字符串:

    时间日期对象.strftime(format)

    例如: datetime.now().strftime("%Y-%m-%d")

  • 5.字符串转日期时间对象:

    datetime.strptime(data_str, format)

    例如: datetime.strptime(‘2018-3-22 15:28:18‘, ‘%Y-%m-%d %H:%M:%S‘)

  • 6.格式字符串常用格式

    格式 描述

    %Y,%y 年 %m 月 %d 日 %H/%l 时 %M 分 %S 秒

2.timedelte:时间运算

datetime.timedelta( days=0,seconds=0, microseconds=0 milliseconds=0, minutes=0, hours=0, weeks=0 )

?

import datetime

now = datetime.datetime. now (). date()

result = now + datetime. timedelta(days=1)
print (result. strftime ("%d")) #获得明天的日期

result = now 一 datetime.timedelta (days=3)
print (result. strftime("%d")) #获得三天前的日期



from datetime import datetime

def get_days(birthday):
birth=datetime.strptime(birthday,‘%Y-%m-%S‘)
now=datetime.now()
days=now-birth
print(days.days)

if __name__== ‘__main__‘:
birthday=input(‘shngri(1980-01-01):‘)
get_days(birthday)

?
?
?

6.2 logging模块

logging.level(message) 创建一条level级别的日志 logging.basicConfig() 对logger进行配置

Python中datetime和logging模块如何结合使用?

?
import logging

LOG_FORMAT = ”%(asctime)s - %(1evelname)s-% (message)s” #设置输出的格式

logging. basicConfig( level=logging. WARNING, format=LOG_FORMAT)

#写到文件中
logging. basicConfig( filename=‘my.log‘,filemode = ‘a‘,level=logging. WARNING, format=LOG_FORMAT)

logging. debug( This is a debug log )

logging. info( This is a info log”

logging. warning( This is a warning log")

logging. error( This is a errorlog")

logging. critical ( This is a critical 1og )

Logging 中几种级别:DEBUG < INFO < WARNING < ERROR < CRITICAL 默认显示后三个

日志等级(level) :

日志等级(level) : 描述
?
DEBUG 调试信息,通常在诊断问题的时候用得着
INFO 普通信息,确认程序按照预期运行
?
WARNING 警告信息,表示发生意想不到的事情,或者指示接下来可能 会出现一些问题,但是程序还是继续运行
?
ERROR 错误信息,程序运行中出现了一些问题,程序某些功能不能执行
CRITICAL 危险信息,一个严重的错误,导致程序无法继续运行

  • Formatter格式:

    %(asctime)s 日志事件发生的时间 %(levelname)s 该日志记录的日志级别 %(message)s 日志记录的文本内容 %(name)s 所使用的日志器名称,默认是‘root‘ %(pathname)s 调用日志记录函数的文件的全路径 %(filename)s 调用日志记录函数的文件 %(funcName)s 调用日志记录函数的函数名 %(lineno)d 调用日志记录函数的代码所在的行号

  • 组件 说明:(了解)

    Loggers(日志记录器) 提供程序直接使用的接口 Handlers(日志处理器) 将记录的日志发送到指定的位置 Filters(日志过滤器) 用于过滤特定的日志记录 Formatters(日志格式器) 用于控制日志信息的输出格式

模块化组件使用:

  • 1.创建一个logger(日志处理器)对象

  • 2.定义handler(日志处理器),决定把日志发到哪里

    StreamHandler 输出到控制台 FileHandler 输出到文件

  • 3.设置日志级别(level)和输出格式Formatters(日志格式器)

  • 4.把handler添加到对应的logger中去

?
import logging

my_logger = logging . Logger( ‘ nanbei‘ )

fh = logging. FileHandler( ‘my.log‘)
fh. setLevel(logging . INFO)

fmt = logging . Formatter( ‘ %message)s - nanbei‘ )
fh. setFormatter( fmt )

my_logger.addHandler(fh)
?
?

sh = logging .StreamHandler( )
sh.setLevel(logging. DEBUG)

sh_fmt = logging. Formatter(‘%(message)s-nanbei-stream_ handler‘)

sh. setFormatter(sh_fmt )
my_logger. addHandler(sh)

my_logger.info(‘成功‘)
?

本文共计1362个文字,预计阅读时间需要6分钟。

Python中datetime和logging模块如何结合使用?

datetime模块是Python处理时间和日期的标准库。它提供了以下类和功能:

- date:日期对象,包含年、月、日信息。- time:时间对象,包含时、分、秒和微秒信息。- datetime:日期时间对象,结合了日期和时间信息。

常用属性包括:- date:year(年)、month(月)、day(日)- time:hour(时)、minute(分)、second(秒)、microsecond(微秒)

6.1 datetime模块

datetime是python处理时间和日期的标准库

类名 功能说明
?
date 日期对象,常用的属性有year, month, day
?
time 时间对象hour,minute,second,毫秒
?
datetime 日期时间对象,常用的属性有hour, minute, second, microsecond
?
timedelta 时间间隔,即两个时间点之间的长度

主要使用:

datetime.datetiem( ) 、 datetime.timedelta( )

1.datetime类中常用方法:

  • 1.获取当前日期时间:

    datetime.now();

  • 2.日期时间转化为时间戳:

    时间日期对象.timestamp();

    例如:datetime.now().timestamp()

  • 3.时间戳转化为日期时间:

    datetime.fromtimestamp(时间戳)

    例如: datetime.fromtimestamp(1534231316.796308)

  • 4.日期时间对象转字符串:

    时间日期对象.strftime(format)

    例如: datetime.now().strftime("%Y-%m-%d")

  • 5.字符串转日期时间对象:

    datetime.strptime(data_str, format)

    例如: datetime.strptime(‘2018-3-22 15:28:18‘, ‘%Y-%m-%d %H:%M:%S‘)

  • 6.格式字符串常用格式

    格式 描述

    %Y,%y 年 %m 月 %d 日 %H/%l 时 %M 分 %S 秒

2.timedelte:时间运算

datetime.timedelta( days=0,seconds=0, microseconds=0 milliseconds=0, minutes=0, hours=0, weeks=0 )

?

import datetime

now = datetime.datetime. now (). date()

result = now + datetime. timedelta(days=1)
print (result. strftime ("%d")) #获得明天的日期

result = now 一 datetime.timedelta (days=3)
print (result. strftime("%d")) #获得三天前的日期



from datetime import datetime

def get_days(birthday):
birth=datetime.strptime(birthday,‘%Y-%m-%S‘)
now=datetime.now()
days=now-birth
print(days.days)

if __name__== ‘__main__‘:
birthday=input(‘shngri(1980-01-01):‘)
get_days(birthday)

?
?
?

6.2 logging模块

logging.level(message) 创建一条level级别的日志 logging.basicConfig() 对logger进行配置

Python中datetime和logging模块如何结合使用?

?
import logging

LOG_FORMAT = ”%(asctime)s - %(1evelname)s-% (message)s” #设置输出的格式

logging. basicConfig( level=logging. WARNING, format=LOG_FORMAT)

#写到文件中
logging. basicConfig( filename=‘my.log‘,filemode = ‘a‘,level=logging. WARNING, format=LOG_FORMAT)

logging. debug( This is a debug log )

logging. info( This is a info log”

logging. warning( This is a warning log")

logging. error( This is a errorlog")

logging. critical ( This is a critical 1og )

Logging 中几种级别:DEBUG < INFO < WARNING < ERROR < CRITICAL 默认显示后三个

日志等级(level) :

日志等级(level) : 描述
?
DEBUG 调试信息,通常在诊断问题的时候用得着
INFO 普通信息,确认程序按照预期运行
?
WARNING 警告信息,表示发生意想不到的事情,或者指示接下来可能 会出现一些问题,但是程序还是继续运行
?
ERROR 错误信息,程序运行中出现了一些问题,程序某些功能不能执行
CRITICAL 危险信息,一个严重的错误,导致程序无法继续运行

  • Formatter格式:

    %(asctime)s 日志事件发生的时间 %(levelname)s 该日志记录的日志级别 %(message)s 日志记录的文本内容 %(name)s 所使用的日志器名称,默认是‘root‘ %(pathname)s 调用日志记录函数的文件的全路径 %(filename)s 调用日志记录函数的文件 %(funcName)s 调用日志记录函数的函数名 %(lineno)d 调用日志记录函数的代码所在的行号

  • 组件 说明:(了解)

    Loggers(日志记录器) 提供程序直接使用的接口 Handlers(日志处理器) 将记录的日志发送到指定的位置 Filters(日志过滤器) 用于过滤特定的日志记录 Formatters(日志格式器) 用于控制日志信息的输出格式

模块化组件使用:

  • 1.创建一个logger(日志处理器)对象

  • 2.定义handler(日志处理器),决定把日志发到哪里

    StreamHandler 输出到控制台 FileHandler 输出到文件

  • 3.设置日志级别(level)和输出格式Formatters(日志格式器)

  • 4.把handler添加到对应的logger中去

?
import logging

my_logger = logging . Logger( ‘ nanbei‘ )

fh = logging. FileHandler( ‘my.log‘)
fh. setLevel(logging . INFO)

fmt = logging . Formatter( ‘ %message)s - nanbei‘ )
fh. setFormatter( fmt )

my_logger.addHandler(fh)
?
?

sh = logging .StreamHandler( )
sh.setLevel(logging. DEBUG)

sh_fmt = logging. Formatter(‘%(message)s-nanbei-stream_ handler‘)

sh. setFormatter(sh_fmt )
my_logger. addHandler(sh)

my_logger.info(‘成功‘)
?