Warning: file_get_contents(/data/phpspider/zhask/data//catemap/8/logging/2.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Python-创建日志文件并将其输出到循环中的不同文件夹_Python_Logging - Fatal编程技术网

Python-创建日志文件并将其输出到循环中的不同文件夹

Python-创建日志文件并将其输出到循环中的不同文件夹,python,logging,Python,Logging,我有一个Logger类,我用它来写控制台和文件。但是,需求已经更改,我希望使用for循环将日志文件输出到不同的文件夹 import sys import os #from pathlib import Path class Logger(object): def __init__(self, name, mode="a"): self.stderr = sys.stderr self.stdout = sys.stdout self

我有一个Logger类,我用它来写控制台和文件。但是,需求已经更改,我希望使用for循环将日志文件输出到不同的文件夹

import sys
import os
#from pathlib import Path

class Logger(object):
    def __init__(self, name, mode="a"):
         self.stderr = sys.stderr
         self.stdout = sys.stdout
         self.log = open(name, mode)
    def __del__(self):
         sys.stderr = self.stderr
         sys.stdout = self.stdout
         self.log.close()
    def write(self, message):
         self.stdout.write(message)
        #self.stderr.write(message)
         self.log.write(message)
    def flush(self):
         self.log.flush()



def printing(x):
     print(x)

def output_path(path, x):
     fname = os.path.join(path, "log_" + str(x) + ".txt")
     if os.path.exists(fname): os.remove(fname)
     sys.stdout = Logger(fname)

for i in range(3):
     path = "../../../test/{}".format(str(i))
     if not os.path.exists(path):
         os.makedirs(path)

     output_path(path, i)
     printing(i + "Piece")
当我运行这段代码时,会创建3个日志文件,但是,日志文件中的输出不是我想要的

电流输出**

Log_0.txt -> 0piece
             1piece
             2piece 

Log_1.txt -> 1piece
             2piece

Log_2.txt -> 2piece
优先输出

Log_0.txt -> 0piece

Log_1.txt -> 1piece

Log_2.txt -> 2piece

如您所见,我对记录器的行为不太熟悉,我的问题是如何创建日志文件、写入日志文件并在每次迭代后关闭日志文件。我希望能够将其推广到嵌套循环,您可以查看python模块。它功能齐全,使用方便。
它有一个RotatingFileHandler,可以自动在文件上旋转。请参见示例:

为什么不使用python日志框架?标准又好