You can right-click on the results and do a "Save As"
Freddie Gibson helped me setup a logging file years ago that I still use (modified some since then). In this case, I'm just capturing what I "print/AddMessage" (myMsg function) I have various time/date functions which can be modified to fit your needs.
import time
import arcpy
import os
from time import localtime
def timeStamp():
return time.strftime(' - %B %d - %H:%M:%S')
def myMsgs(message):
arcpy.AddMessage("{0} {1}".format(message, curTime()))
print("{0} {1} {2}".format(message, curDate(), curTime()))
global messageCount
logFolder = r"C:\ESRITEST"
if not arcpy.Exists(logFolder):
arcpy.CreateFolder_management(os.sep.join(logFolder.split(os.sep)[:-1]), logFolder.split(os.sep)[-1])
mdy = curDate()
logName = "logfile_" + "_".join(mdy.split("/")) + ".log"
logFile = open(os.path.join(logFolder, logName), "a")
if message.lower() == "blank line":
logFile.write("\n\n")
print('\n\n')
elif message.lower() == "close logfile":
logFile.write("\n\n***** finished *****\n\n")
logFile.close()
else:
messageCount += 1
logFile.write("0" * (5 - len(str(messageCount))) + str(messageCount) + ". ")
logFile.write(message)
logFile.write("\n")
def curDate():
rawTime = localtime()
yr = str(rawTime[0])
mo = str(rawTime[1]).zfill(2)
dy = str(rawTime[2]).zfill(2)
return "/".join([mo, dy, yr])
def curTime():
rawTime = localtime()
hr = str(rawTime[3]).zfill(2)
mins = str(rawTime[4]).zfill(2)
secs = str(rawTime[5]).zfill(2)
return (":".join([hr, mins, secs]))
def curFileDateTime():
rawTime = localtime()
yr = str(rawTime[0])
mo = str(rawTime[1]).zfill(2)
dy = str(rawTime[2]).zfill(2)
hr = str(rawTime[3]).zfill(2)
mn = str(rawTime[4]).zfill(2)
return (yr + mo + dy + "_" + hr + mn)
def archiveDate():
rawTime = localtime()
yr = str(rawTime[0])
mo = str(rawTime[1]).zfill(2)
dy = str(rawTime[2]).zfill(2)
hr = str(rawTime[3]).zfill(2)
mn = str(rawTime[4]).zfill(2)
return "".join([yr, mo, dy, hr, mn])
messageCount = 0