Elr*_*337 3 python logging python-logging
我想添加我的程序达到日志输出的秒数。
relativeCreated 我在这里找到了,但它会给我毫秒,例如:
logging.basicConfig(format='{relativeCreated:8.0f}ms {levelname:s} {message:s}', style="{")
Run Code Online (Sandbox Code Playgroud)
结果是
4081ms INFO my message
6012ms INFO another message
Run Code Online (Sandbox Code Playgroud)
但由于我预计运行时间以小时为单位,所以我更愿意。
4s INFO my message
6s INFO another message
Run Code Online (Sandbox Code Playgroud)
我试过
logging.basicConfig(format='{relativeCreated / 1000:4.0f}s {levelname:s} {message:s}', style="{")
Run Code Online (Sandbox Code Playgroud)
但这会导致
KeyError: 'relativeCreated / 1000'
Run Code Online (Sandbox Code Playgroud)
您可以子类化logging.Formatter来修改relativeCreated:
import logging
import time
class RelativeSeconds(logging.Formatter):
def format(self, record):
record.relativeCreated = record.relativeCreated // 1000
return super().format(record)
formatter = RelativeSeconds("%(relativeCreated)ds %(levelname)s %(message)s")
logging.basicConfig()
logging.root.handlers[0].setFormatter(formatter)
logging.error("Test 1")
time.sleep(2)
logging.error("Test 2")
Run Code Online (Sandbox Code Playgroud)
印刷:
0s ERROR Test 1
2s ERROR Test 2
Run Code Online (Sandbox Code Playgroud)
| 归档时间: |
|
| 查看次数: |
854 次 |
| 最近记录: |