如何在文件中写入日志?

时间:2016-02-03 09:31:09

标签: python python-2.7 logging httplib

我在我的python代码中使用了httplib,并提到了以下内容。

import httplib httplib.HTTPConnection.debuglevel = 2

我确实得到了我需要的所有信息,但是httplib库正在控制台上打印它。

我不知道我可以通过哪种方式获取日志文件而不是控制台上的所有日志。

2 个答案:

答案 0 :(得分:2)

如果您查看httplib源代码(https://hg.python.org/cpython/file/2.7/Lib/httplib.py),您将看到调试是通过print语句完成的,因此您无法使用日志记录配置来拦截日志,并且因为打印是一种声明,您不能将其打包以进行出价。

您有几个选择:

  1. 使用httplib
  2. 的替代方法
  3. 使用__getattribute__子类HTTPConnection并执行一些丑陋的操作(或者只为每个要记录的方法写入传递)并在调用发生时记录。
  4. 根据您正在执行的操作,只需将程序的标准输出重定向到文件中即可。

答案 1 :(得分:0)

也许试试这个:

f = open('output.txt','w')
sys.stdout = f

将stdout重定向到文件。