Dear Dave , 

Where did you add this file , and how do you use it ? 

Best Regards,
Hassan Alnatour

On Friday, September 28, 2012 6:38:18 AM UTC+3, Dave wrote:
>
> I have written a script that will load the error pickle file and email me 
> parts of it.  The thing I had to be careful about was compliance.  One of 
> my apps is an ecommerce app.  If there is an error during the checkout 
> process, there is a chance that sensitive data may be in the error file. 
>  In that case, I am stripping out the relevant tracebacks and securely 
> deleting the rest of the pickle file.
>
> If you do a (from gluon import *), you can essentially load the error file 
> as a pickle file and enumerate it as you choose.
>
> I did this all outside the web2py framework so that i wasn't creating 
> errors trying to process errors (if that makes sense)
>
>
> -
> #!/usr/bin/env python
> from gluon import *
> import pickle, os, time, cStringIO, smtplib
>
> from email.mime.multipart import MIMEMultipart
> from email.mime.text import MIMEText
>
>
> def senderror(path, errorfile):
>     infile = open(path + '/' + errorfile)
>     thiserror = pickle.load(infile)
>     infile.close()
>
>     string_buffer = cStringIO.StringIO()
>     
>     string_buffer.write("""<html><body><h2>An error has 
> occurred.</h2><br/>\n""")
>     string_buffer.write("<h4>Exception:</h4><br/>\n")    
>     string_buffer.write('%s' % 
> BEAUTIFY(thiserror['snapshot']['exception']))
>     string_buffer.write('<br/><br/>\n')
>
>     string_buffer.write("<h4>Error Type:</h4><br/>\n")    
>     string_buffer.write('%s' % BEAUTIFY(thiserror['snapshot']['etype']))
>     string_buffer.write('<br/><br/>\n')
>     string_buffer.write("<h4>Locals:</h4><br/>\n")    
>     string_buffer.write('%s' % BEAUTIFY(thiserror['snapshot']['locals']))
>     string_buffer.write('<br/><br/>\n')
>     
>     string_buffer.write("<h4>Traceback:</h4><br/>\n<pre>")    
>     string_buffer.write('%s' % BEAUTIFY(thiserror['traceback']))
>     string_buffer.write('</pre><br/><br/>\n')
>     string_buffer.write("<h4>Code:</h4><br/>\n<pre>")    
>     string_buffer.write('%s' % BEAUTIFY(thiserror['code']))
>     string_buffer.write('</pre><br/><br/>\n')
>     
>     string_buffer.write("</body></html>\n")
>     
>     msg = MIMEMultipart('alternative')
>     text = "An error has occurred at app.  Please investigate."
>     html = string_buffer.getvalue()
>         
>     msg['Subject'] = 'App ERROR: ' + errorfile
>     msg['From'] = 'FROM'
>     msg['To'] = 'TO'
>     
>     part1 = MIMEText(text, 'plain')
>     part2 = MIMEText(html, 'html')
>     
>     msg.attach(part1)
>     msg.attach(part2)
>     
>     s = smtplib.SMTP('localhost')
>     s.sendmail('FROMEMAIL', 'TOEMAIL, msg.as_string())
>     s.quit()
>
>
> def main():    
>     path_to_watch = "/home/app/web2py/applications/app/errors"
>     before = dict ([(f, None) for f in os.listdir (path_to_watch)])
>     while 1:
>         time.sleep (30)
>         after = dict ([(f, None) for f in os.listdir (path_to_watch)])
>         added = [f for f in after if not f in before]
>         if added: print "Errors found."
>         for error in added:
>             print 'sending email for file: ', error
>             senderror(path_to_watch, error)
>         
>         before = after
>   
> if __name__ == "__main__":
>     main()
>
> On Thursday, September 27, 2012 8:32:36 AM UTC-4, Hassan Alnatour wrote:
>>
>> Dear ALL ,
>>
>> Is there a way to make all the error be sent to my email when it happens ?
>>
>> Best regards,
>>
>

-- 



Reply via email to