多处理中的Python日志记录:AttributeError:'Logger'对象没有属性'flush'

2023-12-28

基于此code https://stackoverflow.com/a/5916874我创建了一个 python 对象,它既将输出打印到终端,又将输出保存到日志文件,并在其名称后附加日期和时间:

import sys
import time

class Logger(object):
    """
    Creates a class that will both print and log any
    output text. See https://stackoverflow.com/a/5916874
    for original source code. Modified to add date and
    time to end of file name.
    """
    def __init__(self, filename="Default"):
        self.terminal = sys.stdout
        self.filename = filename + ' ' + time.strftime('%Y-%m-%d-%H-%M-%S') + '.txt'
        self.log = open(self.filename, "a")

    def write(self, message):
        self.terminal.write(message)
        self.log.write(message)


sys.stdout = Logger('TestLog')

这很好用,但是当我尝试将它与使用Pool多处理函数,我收到以下错误:

AttributeError: 'Logger' object has no attribute 'flush'

我该如何修改我的Logger对象以便它可以与并行运行的任何脚本一起使用?


如果你要更换sys.stdout,它必须带有一个类似文件的对象 http://docs.python.org/2/library/stdtypes.html#bltin-file-objects,这意味着你必须实施flush. flush可以是空操作 http://docs.python.org/2/library/stdtypes.html#file.flush:

def flush(self):
    pass
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

多处理中的Python日志记录:AttributeError:'Logger'对象没有属性'flush' 的相关文章

随机推荐

  • JS原型与继承

    在业余时间我尝试学习一点 JS 但我还是坚持主题中的主题 var person new Person Bob Smith 52 var teacher new Teacher Adam Greff 209 function Humans f
  • 在 Unity C# WWW 中显示进度条

    我有这段代码可以从服务器下载视频 但我需要显示进度条 这可能吗 我知道我不能有 WriteAllBytes 的进度条 private IEnumerator DownloadStreamingVideoAndLoad string strU
  • App.config:用户与应用程序范围

    我已经在我的项目中添加了 App config 文件 我从 项目 gt 属性 gt 设置 面板创建了两个设置 我注意到 当我添加设置时 我可以将范围定义为User or Application User 应用 如果我将设置定义为User它去
  • 在派生类中扩展枚举[重复]

    这个问题在这里已经有答案了 我有一个类层次结构 其中的每个类都有一个异常类 在并行层次结构中派生 因此 class Base class Derived public Base class BaseException public std
  • C# 用韩文编码保存文件

    具有以下代码块 用于使用所选编码保存文件 当文件在文本编辑器中打开时 它显示编码为 ASCII StringBuilder sb new StringBuilder sb Append Lots of korean text here En
  • 在接收器发生故障后,如何强制 Flume-NG 处理积压的事件?

    我正在尝试设置 Flume NG 从一组服务器 主要运行 Tomcat 实例和 Apache Httpd 收集各种日志 并将它们转储到 5 节点 Hadoop 集群上的 HDFS 中 设置如下所示 每个应用程序服务器将相关日志跟踪到一个执行
  • 以zend形式添加img标签

    我正在构建一个带有扩展 Zend Form 的类的表单 如何在表单中添加 img 标签 我还需要向其添加一个类并对齐属性 这是我想要达到的最终结果 span class myElement img src myPath align left
  • jQuery $('html, body').not()

    here http jsfiddle net m2eqS 1 我希望当您单击任意位置但不在 div 上时发出警报 当我单击 div 时 也会显示警报 JS 您可以使用事件参数来查看单击了哪个目标并返回 false html body cli
  • ksoap2 铸造 getResponse()

    使用 ksoap2 lib 从 android 调用 net SOAP1 1 Web 服务时 我遇到了将响应转换为自定义对象的问题 例如 下面的代码在 httpTransport call soapAction soapEnvelope 之
  • 复制依赖项,排除某些配置

    假设项目布局如下 allprojects apply plugin java configurations provided compile extendsFrom provided project a dependencies compi
  • C# PropertyGrid 拖放

    我正在尝试使用 VS2005 NET 2 0 在 C 中实现对 propertygrid 的拖 放支持 propertygrid 可以处理 Dragenter 等事件 但似乎没有办法在拖动事件期间获取指针下的 griditem 到目前为止
  • Style.Triggers 与 ControlTemplate.Triggers

    我应该什么时候选择Style Triggers我应该什么时候选择ControlTemplate Triggers 使用其中一种比另一种有什么好处吗 假设我有这些样式可以达到相同的结果
  • 读取 pandas 中除最后一行之外的所有 CSV 文件

    我有 CSV 文件 我在 pandas 中读取这些文件 usr bin env python import pandas as pd import sys filename sys argv 1 df pd read csv filenam
  • Django Formset 中的自定义标签

    如何将自定义标签添加到我的表单集中
  • google-services.json - 更改了 package_name - 我需要创建一个新的配置文件

    我当前的环境已经有一个 google services json 文件并且一切正常 但现在由于不可预见的情况 我必须重命名我的项目的包 我现在已经成功地重命名了包 我还进入了 google services json 文件并重命名了那里的包
  • SwiftUI LazyVGrid - 顶部对齐

    我有很多卡片需要在 vGrid 中显示 但是 卡片具有动态高度 我想要做的是将列中的卡片与顶部对齐 这是当前的设置 let resultGridLayout GridItem adaptive minimum 160 spacing 10
  • 如何使用 Rx.Observable.prototype.let 运算符?

    的例子和解释let操作员 https github com Reactive Extensions RxJS blob master doc api core operators let md https github com Reacti
  • 如何在android中制作可滚动的按钮

    Hello i m trying to make an equalizer for my app but i can t figure out how to make the buttons I don t really know how
  • 多次修改后的SVN性能

    我的项目目前正在使用 svn 存储库 每天都会获得数百个新修订 该存储库驻留在 Win2k3 服务器上 并通过 Apache mod dav svn 提供服务 我现在担心随着时间的推移 性能会由于太多的修改而下降 这种恐惧合理吗 我们已经计
  • 多处理中的Python日志记录:AttributeError:'Logger'对象没有属性'flush'

    基于此code https stackoverflow com a 5916874我创建了一个 python 对象 它既将输出打印到终端 又将输出保存到日志文件 并在其名称后附加日期和时间 import sys import time cl