将python输出重定向到日志文件
我有一个简单的要求。我有一个包含变量列表的python文件。我想执行python文件并将其输出写入日志文件。做这件事的简单方法是什么? 例子: var.py具有以下代码将python输出重定向到日志文件,python,variables,output,Python,Variables,Output,我有一个简单的要求。我有一个包含变量列表的python文件。我想执行python文件并将其输出写入日志文件。做这件事的简单方法是什么? 例子: var.py具有以下代码 x = (10,11,12) y = str("case when id =1 then gr8 else ok end") z = datetime.datatime.today().strftime('%Y-%m-%d') 我希望日志以相同的顺序显示变量的分辨率 x = (10,11,12) y = 'case when
x = (10,11,12)
y = str("case when id =1 then gr8 else ok end")
z = datetime.datatime.today().strftime('%Y-%m-%d')
我希望日志以相同的顺序显示变量的分辨率
x = (10,11,12)
y = 'case when id =1 then gr8 else ok end'
z = 2016-06-07
如何在python中实现这一点
这就是我试过的
# In:
import logging
# set root logger level
root_logger = logging.getLogger()
root_logger.setLevel(logging.DEBUG)
# setup custom logger
logger = logging.getLogger(__name__)
handler = logging.FileHandler('example.log')
handler.setLevel(logging.INFO)
logger.addHandler(handler)
# log
x = (10,11,12)
y = str("case when id =1 then gr8 else ok end")
logger.debug(x)
logger.debug(y)
example.log文件为空使用Python很容易
您可以手动打开、写入和关闭文件,即:
text_file = open("OutputFile.txt", "w")
text_file.write("Write blablabla into a file")
text_file.close()
或者使用上下文管理器(文件会自动关闭),即:
这通常是一种更好的编码实践
在您的示例中:
import datetime
x = (10,11,12)
y = str("case when id =1 then gr8 else ok end")
z = datetime.datetime.today().strftime('%Y-%m-%d')
outfile = 'outputfile.txt'
with open(outfile, 'w') as f:
f.write(str(x))
f.write("\n")
f.write(y)
f.write("\n")
f.write(z)
f.write("\n")
在脚本文件夹中生成名为outputfile.txt
的文件,其中包含以下行:
(10, 11, 12)
case when id =1 then gr8 else ok end
2016-06-07
但是,如果您想要一个特定于日志记录的库,您可以查看
这将产生以下输出:
2016-06-07 15:28:12.874 INFO (10, 11, 12)
2016-06-07 15:28:12.874 INFO case when id =1 then gr8 else ok end
2016-06-07 15:28:12.874 INFO 2016-06-07
使用python记录器功能
没有一种明确的方法可以做到这一点,但是您可以使用Python的内置日志模块jerry rig一些东西,我希望输出也包括变量名。示例z=2016-06-07操纵对象。在string对象.logging.debug(“x=“+str(x))之前假装字符串。我尝试了以下代码。但是我看到example.log是空的,我不完全理解日志模型。但我看到的是,当我从IPython笔记本执行时,我看到文件夹中的日志文件,但它是空的。我看到logger对象已创建,但不确定实际的日志文件。你能在IPython中尝试这个吗?在IPython中尝试了这个代码。我在python文件夹中没有看到log file.log文件?是否需要添加任何特定的处理程序来生成日志文件?谢谢
import datetime, logging
logfile = 'logfile.log'
logging.basicConfig(filename=logfile,
level=logging.INFO,
format='%(asctime)s.%(msecs)03d %(levelname)s %(message)s',
datefmt='%Y-%m-%d %H:%M:%S')
x = (10,11,12)
y = str("case when id =1 then gr8 else ok end")
z = datetime.datetime.today().strftime('%Y-%m-%d')
logging.info(x)
logging.info(y)
logging.info(z)
2016-06-07 15:28:12.874 INFO (10, 11, 12)
2016-06-07 15:28:12.874 INFO case when id =1 then gr8 else ok end
2016-06-07 15:28:12.874 INFO 2016-06-07
import logging
logging.basicConfig(filename='example.log',level=logging.DEBUG)
x = (10,11,12)
y = str("case when id =1 then gr8 else ok end")
logging.debug(x)
logging.debug(y)