Refined event logic to prevent multiple error messages from being displayed. Imlemented GetStackTrace service in Error_Services so that the stack contents can be logged with the RDS Layer error log.
This commit is contained in:
committed by
Stieber Daniel (CSC FI SPS MESLEO)
parent
651b7ab420
commit
f930fd3efe
@ -27,30 +27,47 @@ Common /ErrorServices/ ErrorMessages@, ErrorSources@, ErrorCodes@, RetStacks@, E
|
||||
Equ CRLF$ to \0D0A\
|
||||
|
||||
Declare function Environment_Services, Logging_Services, GetSessionCallStack, Error_Services, RetStack
|
||||
Declare subroutine Logging_Services, Get_Status, Set_Env
|
||||
Declare subroutine Logging_Services, Get_Status, Set_Env, GetTempPath
|
||||
|
||||
Main:
|
||||
|
||||
ErrorMessages = Error_Services('GetMessages')
|
||||
LogPath = Environment_Services('GetApplicationRootPath') : '\LogFiles\StackTrace'
|
||||
LogDate = Oconv(Date(), 'D4/')
|
||||
LogTime = Oconv(Time(), 'MTS')
|
||||
LogFileName = LogDate[7, 4] : '-' : LogDate[1, 2] : '-' : LogDate[4, 2] : ' Error Log.csv'
|
||||
objLog = Logging_Services('NewLog', LogPath, LogFileName, CRLF$, ',', '', '', False$, False$)
|
||||
LogData = ''
|
||||
LogData<1> = CRLF$:'Timestamp: ':LogDate:' ':LogTime
|
||||
LogData<2> = 'Machine: ':Environment_Services('GetServer')
|
||||
LogData<3> = 'Set_Status Code:':EsSpStatCode@
|
||||
LogData<4> = 'Set_Status Message:':EsSpStatMessage@
|
||||
ErrorMessages = Error_Services('GetMessages')
|
||||
LogPath = Environment_Services('GetApplicationRootPath') : '\LogFiles\StackTrace'
|
||||
LogDate = Oconv(Date(), 'D4/')
|
||||
LogTime = Oconv(Time(), 'MTS')
|
||||
LogFileName = LogDate[7, 4] : '-' : LogDate[1, 2] : '-' : LogDate[4, 2] : ' Error Log.csv'
|
||||
objLog = Logging_Services('NewLog', LogPath, LogFileName, CRLF$, ',', '', '', False$, False$)
|
||||
TempLogFileName = 'OIStackLog.csv'
|
||||
TempDirectory = Str(\00\, 1024)
|
||||
GetTempPath(Len(TempDirectory), TempDirectory)
|
||||
Convert \00\ to '' in TempDirectory
|
||||
TempLogPath = TempDirectory
|
||||
objTempLog = Logging_Services('NewLog', TempLogPath, TempLogFileName, CRLF$, ',', '', '', False$, True$)
|
||||
LogData = ''
|
||||
LogData<1> = CRLF$:'Timestamp: ':LogDate:' ':LogTime
|
||||
LogData<2> = 'Machine: ':Environment_Services('GetServer')
|
||||
LogData<3> = 'Set_Status Code:':EsSpStatCode@
|
||||
LogData<4> = 'Set_Status Message:':EsSpStatMessage@
|
||||
Swap @FM with @VM in ErrorMessages
|
||||
LogData<5> = 'Error_Services Messages:':ErrorMessages
|
||||
LogData<6> = 'Call Depth: ':CallDepth@
|
||||
LogData<7> = 'Curr Program and line no: ':CallStack@<2,1>:@VM:CallStack@<2,2>
|
||||
LogData<8> = 'Call Stack / Line Nos: '
|
||||
Stack = CallStack@
|
||||
Stack = Delete(Stack, 1, 0, 0)
|
||||
LogData<9> = Stack:CRLF$
|
||||
LogData<5> = 'Error_Services Messages:':ErrorMessages
|
||||
LogData<6> = 'Call Depth: ':CallDepth@
|
||||
Stack = CallStack@
|
||||
Begin Case
|
||||
Case ( (CallStack@<1,1> EQ 'ERROR_SERVICES') and (CallStack@<2,1> EQ 'ERROR_SERVICES') )
|
||||
LogData<7> = 'Curr Program and line no: ':CallStack@<3,1>:@VM:CallStack@<3,2>
|
||||
Stack = Delete(Stack, 1, 0, 0)
|
||||
Stack = Delete(Stack, 1, 0, 0)
|
||||
Case (CallStack@<1,1> EQ 'ERROR_SERVICES')
|
||||
LogData<7> = 'Curr Program and line no: ':CallStack@<2,1>:@VM:CallStack@<2,2>
|
||||
Stack = Delete(Stack, 1, 0, 0)
|
||||
Case Otherwise$
|
||||
LogData<7> = 'Curr Program and line no: ':CallStack@<1,1>:@VM:CallStack@<1,2>
|
||||
End Case
|
||||
LogData<8> = 'Call Stack / Line Nos: '
|
||||
Convert \00\ to '' in Stack
|
||||
LogData<9> = Stack:CRLF$
|
||||
Logging_Services('AppendLog', objLog, LogData, @FM, @VM, '', '', '')
|
||||
Logging_Services('AppendLog', objTempLog, LogData, @FM, @VM, '', '', '')
|
||||
|
||||
Return
|
||||
|
||||
|
Reference in New Issue
Block a user