在运行程序前添加如下代码:
import sys
class Logger(object):
def __init__(self, logFile ="Default.log"):
self.terminal = sys.stdout
self.log = open(logFile,'a')
def write(self,message):
self.terminal.write(message)
self.log.write(message)
def flush(self):
pass
sys.stdout = Logger("log.log")
2. 方式二, 命令行方式(推荐)
nohup python -u test.py > test.log 2>&1 &
参数解释:
- “nohup” 表示程序不被挂起 ( 可选)
- “python”表示执行python代码
- “-u”表示不启用缓存,实时输出打印信息到日志文件,建议使用(如果不加-u,则会导致日志文件不会实时刷新代码中的print函数的信息)
- “test.py”表示python的源代码文件
- “>”表示将打印信息重定向到日志文件
- “test.log”表示输出的日志文件
- “2>&1”表示将标准错误输出转变化标准输出,可以将错误信息也输出到日志文件中(0-> stdin, 1->stdout, 2->stderr)
- 最后一个“&”表示后台运行程序



