<?xml version="1.0" encoding="UTF-8"?>
<rss xmlns:content="http://purl.org/rss/1.0/modules/content/" xmlns:dc="http://purl.org/dc/elements/1.1/" xmlns:rdf="http://www.w3.org/1999/02/22-rdf-syntax-ns#" xmlns:taxo="http://purl.org/rss/1.0/modules/taxonomy/" version="2.0">
  <channel>
    <title>topic Re: Add Log File and Email to Python Script in Python Questions</title>
    <link>https://community.esri.com/t5/python-questions/add-log-file-and-email-to-python-script/m-p/214762#M16542</link>
    <description>&lt;HTML&gt;&lt;HEAD&gt;&lt;/HEAD&gt;&lt;BODY&gt;&lt;SPAN&gt;Which version of ArcGIS are you using?&amp;nbsp; If you're using 10.1 or higher, you can leverage the SetLogHistory function in arcpy to turn on logging for your GP tools.&amp;nbsp; As such, you'd do something like this:&lt;/SPAN&gt;&lt;BR /&gt;&lt;BR /&gt;&lt;SPAN&gt;import arcpy&lt;/SPAN&gt;&lt;BR /&gt;&lt;SPAN&gt;arcpy.SetLogHistory(True)&lt;/SPAN&gt;&lt;BR /&gt;&lt;BR /&gt;&lt;SPAN&gt;This will create a History Log File of the Results window and the parameters passed for each GP tool.&amp;nbsp; The file will be an XML file named with a timestamp and typically stored at C:\Users\&amp;lt;user name&amp;gt;\AppData\(Local or LocalLow or Roaming)\ESRI\Desktop10.1\ArcToolbox\History (if Windows 7 is being used).&amp;nbsp; &lt;/SPAN&gt;&lt;BR /&gt;&lt;BR /&gt;&lt;SPAN&gt;The Esri online help for the 10.1 function is here: &lt;/SPAN&gt;&lt;A href="http://resources.arcgis.com/en/help/main/10.1/index.html#//018v00000087000000"&gt;http://resources.arcgis.com/en/help/main/10.1/index.html#//018v00000087000000&lt;/A&gt;&lt;BR /&gt;&lt;BR /&gt;&lt;SPAN&gt;This method is much more of a verbose type of logging.&amp;nbsp; If you want your own custom logging (i.e., messages that you insert into your Python script to be displayed when a certain point in the script is reached) then you'd want to use something like arcpy.AddMessage.&amp;nbsp; There are several other types of messaging and error handling functions beside AddMessage, and they can be found here:&lt;/SPAN&gt;&lt;BR /&gt;&lt;BR /&gt;&lt;A href="http://resources.arcgis.com/en/help/main/10.1/index.html#/AddMessage/018v00000007000000/"&gt;http://resources.arcgis.com/en/help/main/10.1/index.html#/AddMessage/018v00000007000000/&lt;/A&gt;&lt;BR /&gt;&lt;BR /&gt;&lt;SPAN&gt;You can output these types of messages to the Python window using the AddMessage function, or you can output them directly to a text file (i.e., your own custom log file) during the script using a non-arcpy method like this:&lt;/SPAN&gt;&lt;BR /&gt;&lt;BR /&gt;&lt;SPAN&gt;f = open('outputlog', 'a')&lt;/SPAN&gt;&lt;BR /&gt;&lt;SPAN&gt;parseLines = f.readlines()&lt;/SPAN&gt;&lt;BR /&gt;&lt;SPAN&gt;f.write('The process failed due to this custom error.\n')&lt;/SPAN&gt;&lt;BR /&gt;&lt;SPAN&gt;f.close()&lt;/SPAN&gt;&lt;BR /&gt;&lt;BR /&gt;&lt;SPAN&gt;In either case, you can email the custom log file or the XML History Log File using the smtplib module in Python.&amp;nbsp; Here's an example:&lt;/SPAN&gt;&lt;BR /&gt;&lt;BR /&gt;&lt;SPAN&gt;# import the modules&lt;/SPAN&gt;&lt;BR /&gt;&lt;SPAN&gt;from email.MIMEMultipart import MIMEMultipart&lt;/SPAN&gt;&lt;BR /&gt;&lt;SPAN&gt;from email.MIMEText import MIMEText&lt;/SPAN&gt;&lt;BR /&gt;&lt;SPAN&gt;from email.MIMEImage import MIMEImage&lt;/SPAN&gt;&lt;BR /&gt;&lt;SPAN&gt;import smtplib&lt;/SPAN&gt;&lt;BR /&gt;&lt;BR /&gt;&lt;SPAN&gt;# prepare the message and attachment&lt;/SPAN&gt;&lt;BR /&gt;&lt;SPAN&gt;msg = MIMEMultipart()&lt;/SPAN&gt;&lt;BR /&gt;&lt;SPAN&gt;msg.attach(MIMEText(file("CustomLogFile.txt").read()))&lt;/SPAN&gt;&lt;BR /&gt;&lt;SPAN&gt;msg.attach(MIMEText(file("HistoryLogFile.xml").read()))&lt;/SPAN&gt;&lt;BR /&gt;&lt;SPAN&gt;msg.attach(MIMEImage(file("image.png").read()))&lt;/SPAN&gt;&lt;BR /&gt;&lt;BR /&gt;&lt;SPAN&gt;# your email SMTP server connection information&lt;/SPAN&gt;&lt;BR /&gt;&lt;SPAN&gt;mailer = smtplib.SMTP()&lt;/SPAN&gt;&lt;BR /&gt;&lt;SPAN&gt;mailer.connect()&lt;/SPAN&gt;&lt;BR /&gt;&lt;SPAN&gt;mailer.sendmail(from_, to, msg.as_string())&lt;/SPAN&gt;&lt;BR /&gt;&lt;SPAN&gt;mailer.close()&lt;/SPAN&gt;&lt;/BODY&gt;&lt;/HTML&gt;</description>
    <pubDate>Sat, 14 Dec 2013 14:13:11 GMT</pubDate>
    <dc:creator>WilliamCraft</dc:creator>
    <dc:date>2013-12-14T14:13:11Z</dc:date>
    <item>
      <title>Add Log File and Email to Python Script</title>
      <link>https://community.esri.com/t5/python-questions/add-log-file-and-email-to-python-script/m-p/214761#M16541</link>
      <description>&lt;HTML&gt;&lt;HEAD&gt;&lt;/HEAD&gt;&lt;BODY&gt;&lt;SPAN&gt;I'm pretty new to python and I'm wondering if it's easy to insert code to create a log file (.txt) of the geoprocessing? And I'm also wondering if it's possible to attach the .txt file in an email as part of the script?&lt;/SPAN&gt;&lt;BR /&gt;&lt;BR /&gt;&lt;SPAN&gt;I could live without the email, but the log file is something I'm really curious about.&lt;/SPAN&gt;&lt;BR /&gt;&lt;BR /&gt;&lt;SPAN&gt;Thanks in advance!&lt;/SPAN&gt;&lt;/BODY&gt;&lt;/HTML&gt;</description>
      <pubDate>Sat, 14 Dec 2013 13:43:06 GMT</pubDate>
      <guid>https://community.esri.com/t5/python-questions/add-log-file-and-email-to-python-script/m-p/214761#M16541</guid>
      <dc:creator>mpboyle</dc:creator>
      <dc:date>2013-12-14T13:43:06Z</dc:date>
    </item>
    <item>
      <title>Re: Add Log File and Email to Python Script</title>
      <link>https://community.esri.com/t5/python-questions/add-log-file-and-email-to-python-script/m-p/214762#M16542</link>
      <description>&lt;HTML&gt;&lt;HEAD&gt;&lt;/HEAD&gt;&lt;BODY&gt;&lt;SPAN&gt;Which version of ArcGIS are you using?&amp;nbsp; If you're using 10.1 or higher, you can leverage the SetLogHistory function in arcpy to turn on logging for your GP tools.&amp;nbsp; As such, you'd do something like this:&lt;/SPAN&gt;&lt;BR /&gt;&lt;BR /&gt;&lt;SPAN&gt;import arcpy&lt;/SPAN&gt;&lt;BR /&gt;&lt;SPAN&gt;arcpy.SetLogHistory(True)&lt;/SPAN&gt;&lt;BR /&gt;&lt;BR /&gt;&lt;SPAN&gt;This will create a History Log File of the Results window and the parameters passed for each GP tool.&amp;nbsp; The file will be an XML file named with a timestamp and typically stored at C:\Users\&amp;lt;user name&amp;gt;\AppData\(Local or LocalLow or Roaming)\ESRI\Desktop10.1\ArcToolbox\History (if Windows 7 is being used).&amp;nbsp; &lt;/SPAN&gt;&lt;BR /&gt;&lt;BR /&gt;&lt;SPAN&gt;The Esri online help for the 10.1 function is here: &lt;/SPAN&gt;&lt;A href="http://resources.arcgis.com/en/help/main/10.1/index.html#//018v00000087000000"&gt;http://resources.arcgis.com/en/help/main/10.1/index.html#//018v00000087000000&lt;/A&gt;&lt;BR /&gt;&lt;BR /&gt;&lt;SPAN&gt;This method is much more of a verbose type of logging.&amp;nbsp; If you want your own custom logging (i.e., messages that you insert into your Python script to be displayed when a certain point in the script is reached) then you'd want to use something like arcpy.AddMessage.&amp;nbsp; There are several other types of messaging and error handling functions beside AddMessage, and they can be found here:&lt;/SPAN&gt;&lt;BR /&gt;&lt;BR /&gt;&lt;A href="http://resources.arcgis.com/en/help/main/10.1/index.html#/AddMessage/018v00000007000000/"&gt;http://resources.arcgis.com/en/help/main/10.1/index.html#/AddMessage/018v00000007000000/&lt;/A&gt;&lt;BR /&gt;&lt;BR /&gt;&lt;SPAN&gt;You can output these types of messages to the Python window using the AddMessage function, or you can output them directly to a text file (i.e., your own custom log file) during the script using a non-arcpy method like this:&lt;/SPAN&gt;&lt;BR /&gt;&lt;BR /&gt;&lt;SPAN&gt;f = open('outputlog', 'a')&lt;/SPAN&gt;&lt;BR /&gt;&lt;SPAN&gt;parseLines = f.readlines()&lt;/SPAN&gt;&lt;BR /&gt;&lt;SPAN&gt;f.write('The process failed due to this custom error.\n')&lt;/SPAN&gt;&lt;BR /&gt;&lt;SPAN&gt;f.close()&lt;/SPAN&gt;&lt;BR /&gt;&lt;BR /&gt;&lt;SPAN&gt;In either case, you can email the custom log file or the XML History Log File using the smtplib module in Python.&amp;nbsp; Here's an example:&lt;/SPAN&gt;&lt;BR /&gt;&lt;BR /&gt;&lt;SPAN&gt;# import the modules&lt;/SPAN&gt;&lt;BR /&gt;&lt;SPAN&gt;from email.MIMEMultipart import MIMEMultipart&lt;/SPAN&gt;&lt;BR /&gt;&lt;SPAN&gt;from email.MIMEText import MIMEText&lt;/SPAN&gt;&lt;BR /&gt;&lt;SPAN&gt;from email.MIMEImage import MIMEImage&lt;/SPAN&gt;&lt;BR /&gt;&lt;SPAN&gt;import smtplib&lt;/SPAN&gt;&lt;BR /&gt;&lt;BR /&gt;&lt;SPAN&gt;# prepare the message and attachment&lt;/SPAN&gt;&lt;BR /&gt;&lt;SPAN&gt;msg = MIMEMultipart()&lt;/SPAN&gt;&lt;BR /&gt;&lt;SPAN&gt;msg.attach(MIMEText(file("CustomLogFile.txt").read()))&lt;/SPAN&gt;&lt;BR /&gt;&lt;SPAN&gt;msg.attach(MIMEText(file("HistoryLogFile.xml").read()))&lt;/SPAN&gt;&lt;BR /&gt;&lt;SPAN&gt;msg.attach(MIMEImage(file("image.png").read()))&lt;/SPAN&gt;&lt;BR /&gt;&lt;BR /&gt;&lt;SPAN&gt;# your email SMTP server connection information&lt;/SPAN&gt;&lt;BR /&gt;&lt;SPAN&gt;mailer = smtplib.SMTP()&lt;/SPAN&gt;&lt;BR /&gt;&lt;SPAN&gt;mailer.connect()&lt;/SPAN&gt;&lt;BR /&gt;&lt;SPAN&gt;mailer.sendmail(from_, to, msg.as_string())&lt;/SPAN&gt;&lt;BR /&gt;&lt;SPAN&gt;mailer.close()&lt;/SPAN&gt;&lt;/BODY&gt;&lt;/HTML&gt;</description>
      <pubDate>Sat, 14 Dec 2013 14:13:11 GMT</pubDate>
      <guid>https://community.esri.com/t5/python-questions/add-log-file-and-email-to-python-script/m-p/214762#M16542</guid>
      <dc:creator>WilliamCraft</dc:creator>
      <dc:date>2013-12-14T14:13:11Z</dc:date>
    </item>
    <item>
      <title>Re: Add Log File and Email to Python Script</title>
      <link>https://community.esri.com/t5/python-questions/add-log-file-and-email-to-python-script/m-p/214763#M16543</link>
      <description>&lt;HTML&gt;&lt;HEAD&gt;&lt;/HEAD&gt;&lt;BODY&gt;&lt;SPAN&gt;Have a look at the &lt;/SPAN&gt;&lt;A href="http://docs.python.org/2/library/logging.html#module-logging"&gt;logging&lt;/A&gt;&lt;SPAN&gt; module in Python.&lt;/SPAN&gt;&lt;/BODY&gt;&lt;/HTML&gt;</description>
      <pubDate>Sat, 14 Dec 2013 14:33:16 GMT</pubDate>
      <guid>https://community.esri.com/t5/python-questions/add-log-file-and-email-to-python-script/m-p/214763#M16543</guid>
      <dc:creator>DuncanHornby</dc:creator>
      <dc:date>2013-12-14T14:33:16Z</dc:date>
    </item>
    <item>
      <title>Re: Add Log File and Email to Python Script</title>
      <link>https://community.esri.com/t5/python-questions/add-log-file-and-email-to-python-script/m-p/214764#M16544</link>
      <description>&lt;HTML&gt;&lt;HEAD&gt;&lt;/HEAD&gt;&lt;BODY&gt;&lt;SPAN&gt;I used to use this script a lot at my previous county job.&amp;nbsp; I had several scripts that would run overnight as scheduled tasks so I needed some way to tell myself if the scripts failed.&amp;nbsp; This worked for me:&lt;/SPAN&gt;&lt;BR /&gt;&lt;BR /&gt;&lt;PRE class="lia-code-sample line-numbers language-none"&gt;
'''
Creates error messages and a log file (.txt)
Updated to send email to gis@cedarcounty.org
Updated:&amp;nbsp; 1/2/2012&amp;nbsp; by Caleb Mackey
Cedar County, IA
'''
import arcpy, os, sys, traceback, time
import smtplib
from email.MIMEText import MIMEText
from email.MIMEImage import MIMEImage
from email.MIMEBase import MIMEBase
from email.MIMEMultipart import MIMEMultipart
from email import Encoders
from datetime import datetime as d

def SendErrorMessage(to_address):
&amp;nbsp;&amp;nbsp;&amp;nbsp; 
&amp;nbsp;&amp;nbsp;&amp;nbsp; scriptname = sys.argv[0]
&amp;nbsp;&amp;nbsp;&amp;nbsp; # Get the traceback object
&amp;nbsp;&amp;nbsp;&amp;nbsp; tb = sys.exc_info()[2]
&amp;nbsp;&amp;nbsp;&amp;nbsp; tbinfo = traceback.format_tb(tb)[0]
&amp;nbsp;&amp;nbsp;&amp;nbsp; pymsg = '\nPython Error Info:\n' + str(sys.exc_info()[1])
&amp;nbsp;&amp;nbsp;&amp;nbsp; msgs = 'ArcPy ERRORS:\n' + arcpy.GetMessages(2) + '\n'

&amp;nbsp;&amp;nbsp;&amp;nbsp; # Create Log File
&amp;nbsp;&amp;nbsp;&amp;nbsp; desktop = os.path.join(os.environ['HOME'], 'Desktop')
&amp;nbsp;&amp;nbsp;&amp;nbsp; logs = os.path.join(desktop, 'Logs')&amp;nbsp; # create log folder in desktop
&amp;nbsp;&amp;nbsp;&amp;nbsp; endTime = str(d.now())
&amp;nbsp;&amp;nbsp;&amp;nbsp; Date =&amp;nbsp; time.strftime('_%m_%d_%Y')
&amp;nbsp;&amp;nbsp;&amp;nbsp; usr = 'sentfrompython@gmail.com'
&amp;nbsp;&amp;nbsp;&amp;nbsp; 
&amp;nbsp;&amp;nbsp;&amp;nbsp; # Create Text file and logs folder
&amp;nbsp;&amp;nbsp;&amp;nbsp; if not os.path.exists(logs):
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; os.makedirs(logs)
&amp;nbsp;&amp;nbsp;&amp;nbsp; print logs
&amp;nbsp;&amp;nbsp;&amp;nbsp; txt = os.path.join(logs, os.path.basename(scriptname[:-3]) + Date + '.txt')
&amp;nbsp;&amp;nbsp;&amp;nbsp; print txt
&amp;nbsp;&amp;nbsp;&amp;nbsp; txtFile = open(txt, 'w')
&amp;nbsp;&amp;nbsp;&amp;nbsp; txtFile.write(scriptname + ' Failed at:\t%s' %endTime)
&amp;nbsp;&amp;nbsp;&amp;nbsp; txtFile.write('\nScript Fail time:&amp;nbsp;&amp;nbsp;&amp;nbsp; %s\n' % endTime[:-7])
&amp;nbsp;&amp;nbsp;&amp;nbsp; txtFile.write('\n\n%s\n\n%s' %(pymsg, msgs))
&amp;nbsp;&amp;nbsp;&amp;nbsp; txtFile.close()

&amp;nbsp;&amp;nbsp;&amp;nbsp; # Send email
&amp;nbsp;&amp;nbsp;&amp;nbsp; emsg = MIMEText('%s Failed at:\t&amp;nbsp; %s\n\n%s\n\n%s'
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; %(scriptname,str(d.now()),pymsg,msgs))
&amp;nbsp;&amp;nbsp;&amp;nbsp; emsg['Subject'] = '%s\tError' %os.path.basename(scriptname)
&amp;nbsp;&amp;nbsp;&amp;nbsp; s = smtplib.SMTP('smtp.gmail.com:587')&amp;nbsp; 
&amp;nbsp;&amp;nbsp;&amp;nbsp; s.starttls()
&amp;nbsp;&amp;nbsp;&amp;nbsp; pw = 'YourPassword'
&amp;nbsp;&amp;nbsp;&amp;nbsp; usr = 'sentfrompython@gmail.com'
&amp;nbsp;&amp;nbsp;&amp;nbsp; s.login(usr,pw)
&amp;nbsp;&amp;nbsp;&amp;nbsp; s.sendmail(usr,to_address,emsg.as_string())
&amp;nbsp;&amp;nbsp;&amp;nbsp; s.quit()
&lt;/PRE&gt;&lt;BR /&gt;&lt;BR /&gt;&lt;SPAN&gt;&lt;SPAN&gt;I ended up just making a dummy gmail account called &lt;/SPAN&gt;&lt;A class="jive-link-email-small" href="mailto:'sentfrompython@gmail.com" rel="nofollow noopener noreferrer" target="_blank"&gt;'sentfrompython@gmail.com&lt;/A&gt;&lt;SPAN&gt;' and had all the error messages send from this account.&amp;nbsp; You can use whatever email account you want, you just need to find the email server name and port number.&amp;nbsp; I also hardcoded the username and password into the script for the account sending the email.&amp;nbsp; &lt;/SPAN&gt;&lt;/SPAN&gt;&lt;BR /&gt;&lt;BR /&gt;&lt;SPAN&gt;So to incorporate it into geoprocessing tools, you would need to save this python script inside one of your PYTHONPATH locations.&amp;nbsp; I would always use a try and except block using this send error message function to handle the exception.&amp;nbsp; For example if you save the above script as: "C:\Python27\ArcGISx6410.1\Lib\site-packages\Gmail_tools.py" , you could do something like this in another script: &lt;/SPAN&gt;&lt;BR /&gt;&lt;BR /&gt;&lt;PRE class="lia-code-sample line-numbers language-none"&gt;
import arcpy

try:
&amp;nbsp;&amp;nbsp;&amp;nbsp; # do some geoprcoessing tasks

&amp;nbsp;&amp;nbsp;&amp;nbsp; # do arcpy stuff

&amp;nbsp;&amp;nbsp;&amp;nbsp; kjlkjk&amp;nbsp; # this will raise an error and send email message
&amp;nbsp;&amp;nbsp;&amp;nbsp; 
except:
&amp;nbsp;&amp;nbsp;&amp;nbsp; import Gmail_tools
&amp;nbsp;&amp;nbsp;&amp;nbsp; Gmail_tools.SendErrorMessage('caleb.mackey@gmail.com')&amp;nbsp; # sends message to my gmail account

&lt;/PRE&gt;&lt;BR /&gt;&lt;BR /&gt;&lt;SPAN&gt;And here is the email message/log file that is generated from the test script:&lt;/SPAN&gt;&lt;BR /&gt;&lt;BR /&gt;&lt;BLOCKQUOTE class="jive-quote"&gt;&lt;BR /&gt;C:/Users/Caleb/Desktop/email_test.py Failed at: 2013-12-14 13:42:49.228000&lt;BR /&gt;Script Fail time:&amp;nbsp;&amp;nbsp;&amp;nbsp; 2013-12-14 13:42:49&lt;BR /&gt;&lt;BR /&gt;&lt;BR /&gt;&lt;BR /&gt;Python Error Info:&lt;BR /&gt;name 'kjlkjk' is not defined&lt;BR /&gt;&lt;BR /&gt;ArcPy ERRORS:&lt;BR /&gt;&lt;/BLOCKQUOTE&gt;&lt;/BODY&gt;&lt;/HTML&gt;</description>
      <pubDate>Sat, 11 Dec 2021 10:31:46 GMT</pubDate>
      <guid>https://community.esri.com/t5/python-questions/add-log-file-and-email-to-python-script/m-p/214764#M16544</guid>
      <dc:creator>Anonymous User</dc:creator>
      <dc:date>2021-12-11T10:31:46Z</dc:date>
    </item>
    <item>
      <title>Re: Add Log File and Email to Python Script</title>
      <link>https://community.esri.com/t5/python-questions/add-log-file-and-email-to-python-script/m-p/214765#M16545</link>
      <description>&lt;HTML&gt;&lt;HEAD&gt;&lt;/HEAD&gt;&lt;BODY&gt;&lt;SPAN&gt;Hi, nice script. Anyway to extend it to include a success message after each tool runs? E.g. I have a very long and complicated py that exports a bunch of stuff out of SDE into a FGDB, would like to know which FC's exported successfully, and which failed. Thanks!&lt;/SPAN&gt;&lt;/BODY&gt;&lt;/HTML&gt;</description>
      <pubDate>Mon, 14 Apr 2014 00:04:11 GMT</pubDate>
      <guid>https://community.esri.com/t5/python-questions/add-log-file-and-email-to-python-script/m-p/214765#M16545</guid>
      <dc:creator>ThomasColson</dc:creator>
      <dc:date>2014-04-14T00:04:11Z</dc:date>
    </item>
    <item>
      <title>Re: Add Log File and Email to Python Script</title>
      <link>https://community.esri.com/t5/python-questions/add-log-file-and-email-to-python-script/m-p/214766#M16546</link>
      <description>&lt;HTML&gt;&lt;HEAD&gt;&lt;/HEAD&gt;&lt;BODY&gt;&lt;P&gt;did you figure this out? &lt;/P&gt;&lt;/BODY&gt;&lt;/HTML&gt;</description>
      <pubDate>Fri, 23 Jan 2015 15:35:02 GMT</pubDate>
      <guid>https://community.esri.com/t5/python-questions/add-log-file-and-email-to-python-script/m-p/214766#M16546</guid>
      <dc:creator>lelaharrington</dc:creator>
      <dc:date>2015-01-23T15:35:02Z</dc:date>
    </item>
    <item>
      <title>Re: Add Log File and Email to Python Script</title>
      <link>https://community.esri.com/t5/python-questions/add-log-file-and-email-to-python-script/m-p/214767#M16547</link>
      <description>&lt;HTML&gt;&lt;HEAD&gt;&lt;/HEAD&gt;&lt;BODY&gt;&lt;P&gt;At the end of my Python script I have a section of code that creates a completion status message and emails it stating that everything was completed successfully.&amp;nbsp; I also have one that sends an error message if something does not.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;You could change the code so that it creates the txt message initially and then write to it each time a FC has been created.&amp;nbsp; Upon an error, add the error message to the same text and then email it to yourself.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;George&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P style="padding-left: 30px;"&gt;&lt;SPAN style="color: #2873ee;"&gt;# Import arcpy module&lt;/SPAN&gt;&lt;/P&gt;&lt;P style="padding-left: 30px;"&gt;&lt;SPAN style="color: #2873ee;"&gt;import arcpy,sys,traceback,smtplib&lt;/SPAN&gt;&lt;/P&gt;&lt;P style="padding-left: 30px;"&gt;&lt;SPAN style="color: #2873ee;"&gt;from arcpy import env&lt;/SPAN&gt;&lt;/P&gt;&lt;P style="padding-left: 30px;"&gt;&lt;/P&gt;&lt;P style="padding-left: 30px;"&gt;#NOTE you can ignore some of these modules, only import the ones needed, some of these are for the other portion of my script&lt;/P&gt;&lt;P style="padding-left: 30px;"&gt;&lt;SPAN style="color: #2873ee;"&gt;import httplib,urllib,json,getpass,csv,xlwt&lt;/SPAN&gt;&lt;/P&gt;&lt;P style="padding-left: 30px;"&gt;&lt;SPAN style="color: #2873ee;"&gt;import xml.dom.minidom as DOM &lt;/SPAN&gt;&lt;/P&gt;&lt;P style="padding-left: 30px;"&gt;&lt;SPAN style="color: #2873ee;"&gt;from email.mime.text import MIMEText&lt;/SPAN&gt;&lt;/P&gt;&lt;P style="padding-left: 30px;"&gt;&lt;/P&gt;&lt;P style="padding-left: 30px;"&gt;&lt;SPAN style="color: #2873ee;"&gt;msgFolder = "C:/arcgisserver/gisData/services/claimsMap/logs/"&lt;/SPAN&gt;&lt;/P&gt;&lt;P style="padding-left: 30px;"&gt;&lt;SPAN style="color: #2873ee;"&gt;&lt;SPAN&gt;sender = &lt;SPAN style="color: #2873ee;"&gt;"YOUR INFO"&lt;/SPAN&gt;&lt;/SPAN&gt;&lt;/SPAN&gt;&lt;/P&gt;&lt;P style="padding-left: 30px;"&gt;&lt;SPAN style="color: #2873ee;"&gt;&lt;SPAN&gt;recipient = &lt;SPAN style="color: #2873ee;"&gt;"YOUR INFO"&lt;/SPAN&gt;&lt;/SPAN&gt;&lt;/SPAN&gt;&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P style="padding-left: 30px;"&gt;&lt;SPAN style="color: #2873ee;"&gt;#########################################################&lt;/SPAN&gt;&lt;/P&gt;&lt;P style="padding-left: 30px;"&gt;&lt;SPAN style="color: #2873ee;"&gt;##### Main Code Body #####&lt;/SPAN&gt;&lt;/P&gt;&lt;P style="padding-left: 30px;"&gt;&lt;/P&gt;&lt;P style="padding-left: 30px;"&gt;&lt;SPAN style="color: #2873ee;"&gt;while True:&lt;/SPAN&gt;&lt;/P&gt;&lt;P style="padding-left: 30px;"&gt;&lt;SPAN style="color: #2873ee;"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; try:&lt;/SPAN&gt;&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P style="padding-left: 30px;"&gt;&lt;SPAN style="color: #2873ee;"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; ######################################################&lt;/SPAN&gt;&lt;/P&gt;&lt;P style="padding-left: 30px;"&gt;&lt;SPAN style="color: #2873ee;"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; ### Results Email Message #####&lt;/SPAN&gt;&lt;/P&gt;&lt;P style="padding-left: 30px;"&gt;&lt;SPAN style="color: #2873ee;"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; ### Create Email Status Message&lt;/SPAN&gt;&lt;/P&gt;&lt;P style="padding-left: 30px;"&gt;&lt;SPAN style="color: #2873ee;"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; msgTxt = msgFolder+"resultMSG.txt"&lt;/SPAN&gt;&lt;/P&gt;&lt;P style="padding-left: 30px;"&gt;&lt;SPAN style="color: #2873ee;"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; writeFile = open(msgTxt,"w")&lt;/SPAN&gt;&lt;/P&gt;&lt;P style="padding-left: 30px;"&gt;&lt;SPAN style="color: #2873ee;"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; writeFile.write("claimsMaps are now updated.\n")&lt;/SPAN&gt;&lt;/P&gt;&lt;P style="padding-left: 30px;"&gt;&lt;SPAN style="color: #2873ee;"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; writeFile.write("\n")&lt;/SPAN&gt;&lt;/P&gt;&lt;P style="padding-left: 30px;"&gt;&lt;SPAN style="color: #2873ee;"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; writeFile.write("Verify the current mapservice and refresh as needed.\n")&lt;/SPAN&gt;&lt;/P&gt;&lt;P style="padding-left: 30px;"&gt;&lt;SPAN style="color: #2873ee;"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; writeFile.write("\n")&lt;/SPAN&gt;&lt;/P&gt;&lt;P style="padding-left: 30px;"&gt;&lt;SPAN style="color: #2873ee;"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; writeFile.close()&lt;/SPAN&gt;&lt;/P&gt;&lt;P style="padding-left: 30px;"&gt;&lt;SPAN style="color: #2873ee;"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; del msgTxt&lt;/SPAN&gt;&lt;/P&gt;&lt;P style="padding-left: 30px;"&gt;&lt;/P&gt;&lt;P style="padding-left: 30px;"&gt;&lt;SPAN style="color: #2873ee;"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; ### Send Email Status Message&lt;/SPAN&gt;&lt;/P&gt;&lt;P style="padding-left: 30px;"&gt;&lt;SPAN style="color: #2873ee;"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; txt = msgFolder+"resultMSG.txt"&lt;/SPAN&gt;&lt;/P&gt;&lt;P style="padding-left: 30px;"&gt;&lt;SPAN style="color: #2873ee;"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; fp = open(txt,'rb')&lt;/SPAN&gt;&lt;/P&gt;&lt;P style="padding-left: 30px;"&gt;&lt;SPAN style="color: #2873ee;"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; msg = MIMEText(fp.read())&lt;/SPAN&gt;&lt;/P&gt;&lt;P style="padding-left: 30px;"&gt;&lt;SPAN style="color: #2873ee;"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; fp.close()&lt;/SPAN&gt;&lt;/P&gt;&lt;P style="padding-left: 30px;"&gt;&lt;/P&gt;&lt;P style="padding-left: 30px;"&gt;&lt;SPAN style="color: #2873ee;"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; msg['Subject'] = "claimsMaps Updated"&lt;/SPAN&gt;&lt;/P&gt;&lt;P style="padding-left: 30px;"&gt;&lt;SPAN style="color: #2873ee;"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; msg['From'] = sender&lt;/SPAN&gt;&lt;/P&gt;&lt;P style="padding-left: 30px;"&gt;&lt;SPAN style="color: #2873ee;"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; msg['To'] = recipient&lt;/SPAN&gt;&lt;/P&gt;&lt;P style="padding-left: 30px;"&gt;&lt;/P&gt;&lt;P style="padding-left: 30px;"&gt;&lt;SPAN style="color: #2873ee;"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; server = smtplib.SMTP("YOUR INFO")&lt;/SPAN&gt;&lt;/P&gt;&lt;P style="padding-left: 30px;"&gt;&lt;SPAN style="color: #2873ee;"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; server.sendmail(sender,recipient,msg.as_string())&lt;/SPAN&gt;&lt;/P&gt;&lt;P style="padding-left: 30px;"&gt;&lt;SPAN style="color: #2873ee;"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; server.quit()&lt;/SPAN&gt;&lt;/P&gt;&lt;P style="padding-left: 30px;"&gt;&lt;SPAN style="color: #2873ee;"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; del txt&lt;/SPAN&gt;&lt;/P&gt;&lt;P style="padding-left: 30px;"&gt;&lt;SPAN style="color: #2873ee;"&gt;&amp;nbsp;&amp;nbsp; #######################################################&lt;/SPAN&gt;&lt;/P&gt;&lt;P style="padding-left: 30px;"&gt;&lt;SPAN style="color: #2873ee;"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; except Exception:&lt;/SPAN&gt;&lt;/P&gt;&lt;P style="padding-left: 30px;"&gt;&lt;/P&gt;&lt;P style="padding-left: 30px;"&gt;&lt;SPAN style="color: #2873ee;"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; tb = sys.exc_info()[2]&lt;/SPAN&gt;&lt;/P&gt;&lt;P style="padding-left: 30px;"&gt;&lt;SPAN style="color: #2873ee;"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; tbinfo = traceback.format_tb(tb)[0]&lt;/SPAN&gt;&lt;/P&gt;&lt;P style="padding-left: 30px;"&gt;&lt;SPAN style="color: #2873ee;"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; pymsg = "PYTHON ERRORS:\nTraceback Info:\n" + tbinfo + "\nError Info:\n&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; " + str(sys.exc_type) + ": " + str(sys.exc_value) + "\n"&lt;/SPAN&gt;&lt;/P&gt;&lt;P style="padding-left: 30px;"&gt;&lt;SPAN style="color: #2873ee;"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; msgs = "ARCPY ERRORS:\n" + arcpy.GetMessages(2) + "\n"&lt;/SPAN&gt;&lt;/P&gt;&lt;P style="padding-left: 30px;"&gt;&lt;SPAN style="color: #2873ee;"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; print msgs&lt;/SPAN&gt;&lt;/P&gt;&lt;P style="padding-left: 30px;"&gt;&lt;SPAN style="color: #2873ee;"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; print pymsg&lt;/SPAN&gt;&lt;/P&gt;&lt;P style="padding-left: 30px;"&gt;&lt;SPAN style="color: #2873ee;"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; print arcpy.GetMessages(1)&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;/SPAN&gt;&lt;/P&gt;&lt;P style="padding-left: 30px;"&gt;&lt;/P&gt;&lt;P style="padding-left: 30px;"&gt;&lt;SPAN style="color: #2873ee;"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; ### Create Email Error Message&lt;/SPAN&gt;&lt;/P&gt;&lt;P style="padding-left: 30px;"&gt;&lt;SPAN style="color: #2873ee;"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; msgTxt = msgFolder+"errorArcMSG.txt"&lt;/SPAN&gt;&lt;/P&gt;&lt;P style="padding-left: 30px;"&gt;&lt;SPAN style="color: #2873ee;"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; writeFile = open(msgTxt,"w")&lt;/SPAN&gt;&lt;/P&gt;&lt;P style="padding-left: 30px;"&gt;&lt;SPAN style="color: #2873ee;"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; writeFile.write("claimsMap Error Msg\n")&lt;/SPAN&gt;&lt;/P&gt;&lt;P style="padding-left: 30px;"&gt;&lt;SPAN style="color: #2873ee;"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; writeFile.write("\n")&lt;/SPAN&gt;&lt;/P&gt;&lt;P style="padding-left: 30px;"&gt;&lt;SPAN style="color: #2873ee;"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; writeFile.write("claimsMap Script Failure\n")&lt;/SPAN&gt;&lt;/P&gt;&lt;P style="padding-left: 30px;"&gt;&lt;SPAN style="color: #2873ee;"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; writeFile.write(msgs+"\n")&lt;/SPAN&gt;&lt;/P&gt;&lt;P style="padding-left: 30px;"&gt;&lt;SPAN style="color: #2873ee;"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; writeFile.write("\n")&lt;/SPAN&gt;&lt;/P&gt;&lt;P style="padding-left: 30px;"&gt;&lt;SPAN style="color: #2873ee;"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; writeFile.write(pymsg+"\n")&lt;/SPAN&gt;&lt;/P&gt;&lt;P style="padding-left: 30px;"&gt;&lt;SPAN style="color: #2873ee;"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; writeFile.write("\n")&lt;/SPAN&gt;&lt;/P&gt;&lt;P style="padding-left: 30px;"&gt;&lt;SPAN style="color: #2873ee;"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; writeFile.write(arcpy.GetMessages(1))&lt;/SPAN&gt;&lt;/P&gt;&lt;P style="padding-left: 30px;"&gt;&lt;SPAN style="color: #2873ee;"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; writeFile.close()&lt;/SPAN&gt;&lt;/P&gt;&lt;P style="padding-left: 30px;"&gt;&lt;SPAN style="color: #2873ee;"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;/SPAN&gt;&lt;/P&gt;&lt;P style="padding-left: 30px;"&gt;&lt;SPAN style="color: #2873ee;"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; ### Send Email Status Message&lt;/SPAN&gt;&lt;/P&gt;&lt;P style="padding-left: 30px;"&gt;&lt;SPAN style="color: #2873ee;"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; fp = open(msgTxt,'rb')&lt;/SPAN&gt;&lt;/P&gt;&lt;P style="padding-left: 30px;"&gt;&lt;SPAN style="color: #2873ee;"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; msg = MIMEText(fp.read())&lt;/SPAN&gt;&lt;/P&gt;&lt;P style="padding-left: 30px;"&gt;&lt;SPAN style="color: #2873ee;"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; fp.close()&lt;/SPAN&gt;&lt;/P&gt;&lt;P style="padding-left: 30px;"&gt;&lt;/P&gt;&lt;P style="padding-left: 30px;"&gt;&lt;SPAN style="color: #2873ee;"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; msg['Subject'] = "claimsMap Script Error"&lt;/SPAN&gt;&lt;/P&gt;&lt;P style="padding-left: 30px;"&gt;&lt;SPAN style="color: #2873ee;"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; msg['From'] = sender&lt;/SPAN&gt;&lt;/P&gt;&lt;P style="padding-left: 30px;"&gt;&lt;SPAN style="color: #2873ee;"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; msg['To'] = recipient&lt;/SPAN&gt;&lt;/P&gt;&lt;P style="padding-left: 30px;"&gt;&lt;/P&gt;&lt;P style="padding-left: 30px;"&gt;&lt;SPAN style="color: #2873ee;"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; server = smtplib.SMTP("YOUR INFO")&lt;/SPAN&gt;&lt;/P&gt;&lt;P style="padding-left: 30px;"&gt;&lt;SPAN style="color: #2873ee;"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; server.sendmail(sender,recipient,msg.as_string())&lt;/SPAN&gt;&lt;/P&gt;&lt;P style="padding-left: 30px;"&gt;&lt;SPAN style="color: #2873ee;"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; server.quit()&lt;/SPAN&gt;&lt;/P&gt;&lt;P style="padding-left: 30px;"&gt;&lt;/P&gt;&lt;P style="padding-left: 30px;"&gt;&lt;SPAN style="color: #2873ee;"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; print "Preparing to restart script due to processing error..."&lt;/SPAN&gt;&lt;/P&gt;&lt;P style="padding-left: 30px;"&gt;&lt;SPAN style="color: #2873ee;"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; pass&lt;/SPAN&gt;&lt;/P&gt;&lt;P style="padding-left: 30px;"&gt;&lt;/P&gt;&lt;P style="padding-left: 30px;"&gt;&lt;SPAN style="color: #2873ee;"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; else:&lt;/SPAN&gt;&lt;/P&gt;&lt;P style="padding-left: 30px;"&gt;&lt;SPAN style="color: #2873ee;"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; break&lt;/SPAN&gt;&lt;/P&gt;&lt;/BODY&gt;&lt;/HTML&gt;</description>
      <pubDate>Fri, 23 Jan 2015 16:09:18 GMT</pubDate>
      <guid>https://community.esri.com/t5/python-questions/add-log-file-and-email-to-python-script/m-p/214767#M16547</guid>
      <dc:creator>HaskettGeorge</dc:creator>
      <dc:date>2015-01-23T16:09:18Z</dc:date>
    </item>
  </channel>
</rss>

