import inspect
import traceback
import sys
import time

def FullStack(excInfo):
	returnStr = ""

	tb = excInfo[2]
	tp = excInfo[1].__class__.__name__
	desc = excInfo[1]
	
	returnStr += str("%s: Exception: %s: %s\n" % (time.strftime("%a %d/%m/%Y %H:%M:%S"), tp, desc))
	returnStr += str('\tTraceback (most recent call last):\n')
	
	for item in reversed(inspect.getouterframes(tb.tb_frame)[1:]):
		returnStr += str('\tFile "{1}", line {2}, in {3}\n'.format(*item))
		for line in item[4]:
			returnStr += str('\t\t' + line.lstrip())
	for item in inspect.getinnerframes(tb):
		returnStr += str('\tFile "{1}", line {2}, in {3}\n'.format(*item))
		for line in item[4]:
			returnStr += str('\t\t' + line.lstrip())

	return(returnStr)
