可以将终端上显示的日志输出重定向到文本文件吗? 我试过了
z = open('/mnt/sdc1/Ryan/Marx/newfile.txt'.format(file), 'w')
sys.stdout= sys.stderr = z
print ('Running the Algoritm Now for case {}'.format(file))
run_liver_mpct_algorithms(data_paths, model_paths,[0], int(data_paths['batch_size']), data_paths['task_str']))
z.close()
在文件中z
这只给出了错误和打印语句的回溯,在run_liver_mpct_algorithms
内部有许多日志输出,我也想在文件中输入。
任何想法都会有所帮助,谢谢!
答案 0 :(得分:2)
为什么不使用标准库中的日志记录模块?这是一个简单的例子:
import logging
log_file = 'my_log_file.log'
log_fh = logging.FileHandler(log_file)
log_sh = logging.StreamHandler(sys.stdout)
log_format = '%(asctime)s %(levelname)s: %(message)s'
# Possible levels: DEBUG, INFO, WARNING, ERROR, CRITICAL
log_level = 'INFO'
logging.basicConfig(format=log_format, level=log_level,
handlers=[log_sh, log_fh])
您可以创建如下记录消息:
logging.info('This is a log message on level INFO')
logging.warning('This is a log message on level WARNING')
消息将被写入控制台和您指定的文件。