我使用此代码将文件发送到我的ftp服务器。我想在我的日志文件中有错误登录屏幕和相同的追溯和错误。目前,在我的日志文件中只有错误名称。如何将stdout和stderr同时放在文件和屏幕上?
#!/usr/bin/env python3
# -*- coding: utf-8 -*-
import datetime
import ftplib
import sys
# FTP server login data
ftpserver_ip = '192.168.0.100'
username = 'uname'
password = 'upass'
# If there is command line argument, the first one is our file to upload
if len(sys.argv) > 1:
upload_file = sys.argv[1]
else:
print('No input file')
sys.exit()
def ftpsend():
try:
# ftp server running on 'ftpserver_ip' on port 21
session = ftplib.FTP(ftpserver_ip, username, password)
file = open(upload_file, 'rb')
session.storbinary('STOR '+upload_file, file)
file.close()
session.quit()
except Exception as err:
with open('error.log', 'w') as ferr:
print(err)
ferr.write(str(datetime.datetime.now()))
ferr.write('\n')
ferr.write(str(err))
return None
with open('OK.log', 'w') as fok:
fok.write(str(datetime.datetime.now()))
fok.write(" OK")
print(datetime.datetime.now(), "OK")
ftpsend()
如果一切顺利,应创建文件OK.log。如果发生错误,请输入`error.log'应使用此内容创建,例如:
[Errno 2] No such file or directory: 'simple_table.pd'
Traceback (most recent call last):
File "ftp-send.py", line 35, in ftpsend
file = open(upload_file, 'rb')
FileNotFoundError: [Errno 2] No such file or directory: 'simple_table.pd'