提问人:gwydion93 提问时间:8/29/2019 最后编辑:gwydion93 更新时间:8/30/2019 访问量:2996
如何将日志记录消息写入文件
How to write logging messages to a file
问:
我正在尝试使用Python库。我不想在控制台中打印消息,而是将它们写入文件。根据文档,我有点不确定如何做到这一点。首先,我导入了 in,然后创建了我的日志记录对象。注意:执行此操作时,我有点不确定参数。这是否应该是具有完整文件路径的文件名?我只是编造的随机名称?logging
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')
所以,假设我想从我的 .logFile
logger
logger.debug("Test")
这基本上什么也没做,即使在我使用 .如果我尝试这个:logFile.close()
logFile.write(str(logger.debug("Test")))
它基本上在文件中写“无”。必须有一种简单的方法可以做到这一点;我做错了什么?.txt
答:
7赞
Calculus
8/30/2019
#1
以下是一些我经常用于 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")
您最终应该得到一个具有日期时间戳的日志文件
评论
fileName=logFileName
logger.debug("Test")
logger.{debug,info,warning,error}
None