Thank you Dan and David for your help. What I ended up doing is I think along the lines of what you both mentioned, but maybe a little different. I first created a very simple mini-function in my main script that takes a string parameter. The function then uses 'AddMessage' to return the message to user running script tool and the logfile.write to write same message to a separate text log file. Below is function I created and a snippet of code showing how I used it. Maybe not the most elaborate, but better than having to write each message basically twice.
def WriteMsg(strMsg):
arcpy.AddMessage(strMsg)
logfile.write(strMsg + "\n")
return
### Simple snippet below
lstdomains = arcpy.da.ListDomains(inFGDB) #Get list of domains in inFGDB
addmsg="Processing domains in input workspace: {0} and writing as tables in: {1}".format(inFGDB, outFGDB)
WriteMsg(addmsg)