gpt4 book ai didi

python - 如何将日志消息写入文件

转载 作者:行者123 更新时间:2023-12-01 07:20:48 26 4
gpt4 key购买 nike

我正在尝试使用 Python logging 库。我不想在控制台中打印消息,而是想将它们写入文件。基于documentation ,我有点不确定如何做到这一点。首先,我导入了logging,然后创建了我的日志记录对象。注意:执行此操作时,我有点不确定 name 参数。这是否应该是具有完整文件路径的文件名?我随便起的一个名字?

foldname = "chk_logs"
logFileName = os.path.join(path.abspath(path.curdir),foldname + "\\Fields_Log_" + timeStamp + ".txt") #logging
if os.path.isdir(foldname)==False:
os.mkdir(foldname)
logFile = open(logFileName, "w")

format="%(asctime)s [%(levelname)s] %(message)s"
logging.basicConfig(fileName=logFile, format=format, level=10)
logger = logging.getLogger('name')

所以,假设我想从我的 loggerlogFile 写入一条消息。

   logger.debug("Test")

即使在我使用 logFile.close() 之后,这基本上什么也不做。如果我尝试这个:

logFile.write(str(logger.debug("Test")))

它基本上在 .txt 文件中写入“None”。必须有一个简单的方法来做到这一点;我做错了什么?

最佳答案

这是我经常用于 Python 日志记录的一些样板代码。这是针对 Windows 的。如果您使用的是 UNIX,则需要将正斜杠更改为反斜杠

import os
import logging
import datetime as dt
import time

LOG_FILE = os.getcwd() + "/logs"
if not os.path.exists(LOG_FILE):
os.makedirs(LOG_FILE)
LOG_FILE = LOG_FILE + "/" + dt.datetime.fromtimestamp(time.time()).strftime('%Y_%m_%d %H_%M_%S') + ".log"
logFormatter = logging.Formatter("%(levelname)s %(asctime)s %(processName)s %(message)s")
fileHandler = logging.FileHandler("{0}".format(LOG_FILE))
fileHandler.setFormatter(logFormatter)
rootLogger = logging.getLogger()
rootLogger.addHandler(fileHandler)
rootLogger.setLevel(logging.INFO)

logging.info("testing out the logging functionality")

您最终应该得到一个带有日期时间戳的日志文件

关于python - 如何将日志消息写入文件,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/57713184/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com