我不熟悉Python的日志(log)包,并计划在我的项目中使用它.我想根据自己的喜好定制时间格式.以下是我从教程中复制的一段简短代码:

import logging

# create logger
logger = logging.getLogger("logging_tryout2")
logger.setLevel(logging.DEBUG)

# create console handler and set level to debug
ch = logging.StreamHandler()
ch.setLevel(logging.DEBUG)

# create formatter
formatter = logging.Formatter("%(asctime)s;%(levelname)s;%(message)s")

# add formatter to ch
ch.setFormatter(formatter)

# add ch to logger
logger.addHandler(ch)

# "application" code
logger.debug("debug message")
logger.info("info message")
logger.warn("warn message")
logger.error("error message")
logger.critical("critical message")

以下是输出:

2010-07-10 10:46:28,811;DEBUG;debug message
2010-07-10 10:46:28,812;INFO;info message
2010-07-10 10:46:28,812;WARNING;warn message
2010-07-10 10:46:28,812;ERROR;error message
2010-07-10 10:46:28,813;CRITICAL;critical message

我想把时间格式缩短为"2010-07-10 10:46:28",go 掉毫秒后缀.我看了看格式化程序.是时候了,但很困惑.我感谢你帮助我实现目标.非常感谢.

推荐答案

关于Formatter类的official documentation个选项中:

构造函数接受两个可选参数:消息格式字符串和日期格式字符串.

所以改变

# create formatter
formatter = logging.Formatter("%(asctime)s;%(levelname)s;%(message)s")

# create formatter
formatter = logging.Formatter("%(asctime)s;%(levelname)s;%(message)s",
                              "%Y-%m-%d %H:%M:%S")

Python相关问答推荐

Python:根据创建时间合并两个收件箱

从包含基本数据描述的文本字段中识别和检索特定字符序列

如何以实现以下所述的预期行为的方式添加两只Pandas pyramme

使用Python进行网页抓取,没有页面

如果AST请求默认受csref保护,那么在Django中使用@ system_decorator(csref_protect)的目的是什么?

指示组内的rejected_time是否在creation_timestamp后5分钟内

如何让我的Tkinter应用程序适合整个窗口,无论大小如何?

如何根据日期和时间将状态更新为已过期或活动?

Pandas 在最近的日期合并,考虑到破产

Polars LazyFrame在收集后未返回指定的模式顺序

如何比较numPy数组中的两个图像以获取它们不同的像素

重新匹配{ }中包含的文本,其中文本可能包含{{var}

删除最后一个pip安装的包

优化pytorch函数以消除for循环

PMMLPipeline._ fit()需要2到3个位置参数,但给出了4个位置参数

为什么以这种方式调用pd.ExcelWriter会创建无效的文件格式或扩展名?

在pandas中使用group_by,但有条件

让函数调用方程

考虑到同一天和前2天的前2个数值,如何估算电力时间序列数据中的缺失值?

如何在Pyplot表中舍入值