def MyFunction:
try:
#My code
except Exception as e:
Result = Public.LogError(pyFileName, e, I, ReturnJson = False)
Public Module
-------------
from datetime import datetime
import inspect
import sys
import simplejson as json
def LogError(FileName, e=None, ExtraInfo = "", LogType = 'Error', ReturnJson=False, FlashError = False):
NOW = datetime.now()
curframe = inspect.currentframe()
ErrFunction = inspect.getouterframes(curframe, 2)
Msg = sys.exc_info()[0]
LogFunction = "%s < %s < %s [%s]" %(ErrFunction[1].function, ErrFunction[2].function, ErrFunction[3].function, FileName)
if e:
if hasattr(e, 'message'):
Msg = "%s [Sys: %s]" % (e.message, Msg)
#print(e.message)
else:
#print(e)
Msg = "%s [Sys: %s]" % (e, Msg)
if not Msg: Msg=''
print('------------------------------- ERROR -----------------------------------')
print("%s: FUNC: %s. ERR: %s. %s" % (str(NOW)[11:19], LogFunction, Msg, ExtraInfo))
Common.AddLogEntry(LogType=LogType, LogFunction = LogFunction, LogMessage = '%s %s' % (Msg, ExtraInfo))
print('-------------------------------------------------------------------------')
result = ("%s: FUNC: %s. ERR: %s. %s" % (str(NOW)[11:19], LogFunction, Msg, ExtraInfo))
message = result
if 'ERR: UNIQUE constraint failed' in message:
startat = message.find("ERR: UNIQUE")
char1 = ":"
char2 = "["
table_info = message[message.find(char1,startat) + 1: message.find(char2,startat)]
message = f'There is already a record in the database just like this one. We cannot add another. ({table_info})'
if FlashError: current.response.flash = XML("Error: " + message + current.response.flash)
result = dict(Success = False, Message = message)
if ReturnJson:
result = json.dumps(result)
logger = logging.getLogger("web2py.app.myapp")
logger.setLevel(logging.DEBUG)
logger.error(message)
return result