如何在Python中将日志写入字节或内存流?

时间:2015-02-24 19:14:49

标签: python memory logging io byte

我想将运行日志写入某种内存或字节流。例如,在C#或Java中,存在一个用于完成此任务的内存流对象。有什么方法可以帮助我在Python中将日志写入内存吗?

而不是:

file_handle = open("log.txt", "w")
# ...
if (some_error):
    file_handle.write("event 1:...")
    file_handle.write("event 2:...")
    # ...
file_handle.close()

我想将一个正在运行的日志写入内存中的某个结构。 Python中的最佳实践是什么?一个String对象?还有别的吗?

谢谢。

2 个答案:

答案 0 :(得分:1)

如果您正在寻找具有类文件接口的某种字符串,那么您需要的是StringIO

答案 1 :(得分:1)

看起来the StreamHandler class最能描述您的目标。

“位于核心日志记录包中的StreamHandler类将日志输出发送到诸如sys.stdout,sys.stderr或任何类文件对象的流(或者更准确地说,是支持write()和flush的任何对象()方法)。“

this HOWTO详细描述了在python中的日志记录。