如何将stderr和stdout分别重定向到日志?
如何使用日志模块将标准错误输出(stderr)和标准输出(stdout)分别重定向到不同的日志文件,比如stderr.log和stdout.log?
2 个回答
1
import sys
class OutDevice():
def write(self, s):
# do whatever
pass
class ErrDevice():
def write(self, s):
# do whatever
pass
sys.stdout = OutDevice()
sys.stdout = ErrDevice()
# to restore
sys.stdout = sys.__stdout__
sys.stderr = sys.__stderr__
当然可以!请把你想要翻译的内容发给我,我会帮你用简单易懂的语言解释清楚。
8
你可以简单地用自定义的文件样式对象来替换 sys.stdout
和 sys.stderr
:
import sys
sys.stdout = open('stdout.log', 'a')
sys.stderr = open('stderr.log', 'a')
如果想要恢复原状,可以这样做:
sys.stdout = sys.__stdout__
sys.stderr = sys.__stderr__
想了解更多信息,可以查看 sys
模块的文档。