python exception message capturing
import ftplib
import urllib2
import os
import logging
logger = logging.getLogger('ftpuploader')
hdlr = logging.FileHandler('ftplog.log')
formatter = logging.Formatter('%(asctime)s %(levelname)s %(message)s')
hdlr.setFormatter(formatter)
logger.addHandler(hdlr)
logger.setLevel(logging.INFO)
FTPADDR = "some ftp address"
def upload_to_ftp(con, filepath):
try:
f = open(filepath,'rb') # file to send
con.storbinary('STOR '+ filepath, f) # Send the file
f.close() # Close file and FTP
logger.info('File successfully uploaded to '+ FTPADDR)
except, e:
logger.error('Failed to upload to ftp: '+ str(e))
Dette synes ikke at virke, jeg får en syntaksfejl, hvad er den korrekte måde at gøre dette på for at logge alle slags undtagelser til en fil?
433
3
Du skal definere, hvilken type undtagelse du ønsker at opfange. Så skriv
except Exception, e:
i stedet forexcept, e:
for en generel undtagelse (som alligevel vil blive logget).En anden mulighed er at skrive hele din try/except-kode på denne måde:
i Python 3.x og moderne versioner af Python 2.x bruger du
except Exception as e
i stedet forexcept Exception, e
:Syntaksen er ikke længere understøttet i python 3. Brug følgende i stedet.
Du kan prøve at angive BaseException-typen eksplicit. Dette vil dog kun fange afledte typer af BaseException. Selv om dette omfatter alle implementeringsleverede undtagelser, er det også muligt at udløse vilkårlige gammeldags klasser.