Python 日志错误

Spe*_*rds 8 python logging

所以我第一次使用 python 日志模块,我收到一个错误,我找不到任何信息。

在我的文件的开头,我有以下内容:

logging.basicConfig(level=logging.INFO, filename='logs', filemode='a+', format='[%(asctime)-15s] %(levelname)-8s %(message)s')
Run Code Online (Sandbox Code Playgroud)

抛出错误的行:

logging.info(f'Downloading: {file_name}\t{local_file_path}\t{os.path.abspath(local_file_path)}')

--- Logging error ---
Traceback (most recent call last):
  File "C:\Python36\lib\logging\__init__.py", line 996, in emit
    self.flush()
  File "C:\Python36\lib\logging\__init__.py", line 976, in flush
    self.stream.flush()
OSError: [Errno 22] Invalid argument
Call stack:
  File "Main.py", line 81, in <module>
    main()
  File "C:\Python36\lib\site-packages\click\core.py", line 722, in __call__
    return self.main(*args, **kwargs)
  File "C:\Python36\lib\site-packages\click\core.py", line 697, in main
    rv = self.invoke(ctx)
  File "C:\Python36\lib\site-packages\click\core.py", line 895, in invoke
    return ctx.invoke(self.callback, **ctx.params)
  File "C:\Python36\lib\site-packages\click\core.py", line 535, in invoke
    return callback(*args, **kwargs)
  File "Main.py", line 32, in main
    work_tv(ftp, ext)
  File "Main.py", line 76, in work_tv
    logging.info(f'Downloading: {file_name}\t{local_file_path}\t{os.path.abspath(local_file_path)}')
Message: 'Downloading: Preacher S02E13\t./Preacher/Season 2/Preacher S02E13.mkv\tZ:\\TV\\Preacher\\Season 2\\Preacher S02E13.mkv'
Arguments: ()
Run Code Online (Sandbox Code Playgroud)

我不明白这个错误。前 8 次它成功运行没有问题。但是最后两个,它抛出了这个相同的错误。有人可以向我解释一下。

Vin*_*jip 3

它失败的事实意味着self.stream.flush()正在写入的文件(大概logs)已被关闭或由于某种其他原因不可写入。

更新:如果您需要处理此问题,请对处理程序进行子类化并重写该emit()方法以执行从错误中恢复所需的操作。