Python日志记录的类文件包装器

Python日志记录的类文件包装器,python,logging,Python,Logging,我想构建一个适配器对象,它的行为类似于(文本)文件(为输出而打开),并将提供给它的每一行完整内容转发给标准Python日志记录。应在ctor中指定要使用的记录器以及要为记录的行分配的级别 建议?密码?注意事项?我已经这样做了,请参见 更新:它可以是文件的子类,但它并不特别支持其他文件操作,因此它不需要是文件子类 进一步更新:这取决于OP在我的帖子中采用的方法-如果您愿意,您可以将文件子类化,处理缓冲等-无论您需要什么,这两种方式似乎都不需要做很多工作。建议:发布您尝试过的代码。Code:file

我想构建一个适配器对象,它的行为类似于(文本)文件(为输出而打开),并将提供给它的每一行完整内容转发给标准Python日志记录。应在ctor中指定要使用的记录器以及要为记录的行分配的级别


建议?密码?注意事项?

我已经这样做了,请参见

更新:它可以是
文件
的子类,但它并不特别支持其他文件操作,因此它不需要是
文件
子类


进一步更新:这取决于OP在我的帖子中采用的方法-如果您愿意,您可以将
文件子类化,处理缓冲等-无论您需要什么,这两种方式似乎都不需要做很多工作。

建议:发布您尝试过的代码。Code:file
的子类。注意事项:发布您尝试过的代码,我们将对其进行评论。实际上,它不需要是一个子类,但它确实需要实现常见的
文件
类方法(良好的ol'duck键入)。实际上,由于它只是为
编写
添加了一个简单的功能,它可能应该是
文件
的子类。节省了大量的编码。不需要太多的编码。请看我的答案。我们希望您尝试自己解决这个问题,而不是要求社区为您找到一个完整的解决方案。当您有一些代码向我们展示您的一些努力时(即使是错误的),请更新您的问题和标志以重新打开。谢谢。为什么它不是
文件
的子类?把它变成
文件
的子类是没有意义的。继承的方法(例如
seek()
)都不能与记录器一起工作,也不能合理地使它们这样做。另外,对象并不表示文件。那么
\uuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuu
告诉?似乎有很多方法可以支持?为什么要排除它们?我需要的令人讨厌的细节并不是那么具体的日志记录,而是只记录每一行。文件
中是否有可重复使用的内容?也就是说,当
write
获取包含换行符的缓冲区时,将发生对记录器的多个调用,如果没有终止换行符,则只应对数据进行缓冲并稍后发送。
file
tell()
方法对记录器对象究竟应该做什么?