ATLAS Offline Software
Loading...
Searching...
No Matches
python.trfValidation.scriptLogFileReport Class Reference
Inheritance diagram for python.trfValidation.scriptLogFileReport:
Collaboration diagram for python.trfValidation.scriptLogFileReport:

Public Types

typedef HLT::TypeInformation::for_each_type_c< typenameEDMLIST::map, my_functor, my_result<>, my_arg< HLT::TypeInformation::get_cont, CONTAINER > >::type result

Public Member Functions

 __init__ (self, logfile=None, msgLimit=200, msgDetailLevel=stdLogLevels['ERROR'])
 resetReport (self)
 scanLogFile (self, resetReport=False)
 worstError (self)
 __str__ (self)
 rootSysErrorParser (self, line, lineCounter)
 firstError (self)

Protected Attributes

dict _levelCounter = {}
dict _errorDetails = {}
list _logfile = [logfile, ]
 _msgLimit = msgLimit
 _msgDetails = msgDetailLevel
 _re = None

Detailed Description

Definition at line 709 of file trfValidation.py.

Member Typedef Documentation

◆ result

Definition at line 90 of file EDM_MasterSearch.h.

Constructor & Destructor Documentation

◆ __init__()

python.trfValidation.scriptLogFileReport.__init__ ( self,
logfile = None,
msgLimit = 200,
msgDetailLevel = stdLogLevels['ERROR'] )

Definition at line 710 of file trfValidation.py.

710 def __init__(self, logfile=None, msgLimit=200, msgDetailLevel=stdLogLevels['ERROR']):
711 self._levelCounter = {}
712 self._errorDetails = {}
713 self.resetReport()
714 super(scriptLogFileReport, self).__init__(logfile, msgLimit, msgDetailLevel)
715

Member Function Documentation

◆ __str__()

python.trfValidation.scriptLogFileReport.__str__ ( self)

Definition at line 764 of file trfValidation.py.

764 def __str__(self):
765 return str(self._levelCounter) + str(self._errorDetails)
766

◆ firstError()

python.trfValidation.logFileReport.firstError ( self)
inherited

Reimplemented in python.trfValidation.athenaLogFileReport.

Definition at line 201 of file trfValidation.py.

201 def firstError(self):
202 pass
203

◆ resetReport()

python.trfValidation.scriptLogFileReport.resetReport ( self)

Reimplemented from python.trfValidation.logFileReport.

Definition at line 716 of file trfValidation.py.

716 def resetReport(self):
717 self._levelCounter.clear()
718 for level in list(stdLogLevels) + ['UNKNOWN', 'IGNORED']:
719 self._levelCounter[level] = 0
720
721 self._errorDetails.clear()
722 for level in self._levelCounter: # List of dicts {'message': errMsg, 'firstLine': lineNo, 'count': N}
723 self._errorDetails[level] = []
724

◆ rootSysErrorParser()

python.trfValidation.scriptLogFileReport.rootSysErrorParser ( self,
line,
lineCounter )

Definition at line 767 of file trfValidation.py.

767 def rootSysErrorParser(self, line, lineCounter):
768 msg.debug('Identified ROOT IO problem - adding to error detail report')
769 self._levelCounter['FATAL'] += 1
770 self._errorDetails['FATAL'].append({'message': line, 'firstLine': lineCounter, 'count': 1})
771

◆ scanLogFile()

python.trfValidation.scriptLogFileReport.scanLogFile ( self,
resetReport = False )

Reimplemented from python.trfValidation.logFileReport.

Definition at line 725 of file trfValidation.py.

725 def scanLogFile(self, resetReport=False):
726 if resetReport:
727 self.resetReport()
728
729 for log in self._logfile:
730 msg.info('Scanning logfile {0}'.format(log))
731 try:
732 myGen = trfUtils.lineByLine(log)
733 except IOError as e:
734 msg.error('Failed to open transform logfile {0}: {1:s}'.format(log, e))
735 # Return this as a small report
736 self._levelCounter['ERROR'] = 1
737 self._errorDetails['ERROR'] = {'message': str(e), 'firstLine': 0, 'count': 1}
738 return
739
740 for line, lineCounter in myGen:
741 # TODO: This implementation currently only scans for Root SysErrors.
742 # General solution would be a have common error parser for all system level
743 # errors those all also handled by AthenaLogFileReport.
744 if line.__contains__('Error in <TFile::ReadBuffer>') or \
745 line.__contains__('Error in <TFile::WriteBuffer>'):
746 self.rootSysErrorParser(line, lineCounter)
747

◆ worstError()

python.trfValidation.scriptLogFileReport.worstError ( self)

Reimplemented from python.trfValidation.logFileReport.

Definition at line 749 of file trfValidation.py.

749 def worstError(self):
750 worstlevelName = 'DEBUG'
751 worstLevel = stdLogLevels[worstlevelName]
752 for levelName, count in self._levelCounter.items():
753 if count > 0 and stdLogLevels.get(levelName, 0) > worstLevel:
754 worstlevelName = levelName
755 worstLevel = stdLogLevels[levelName]
756
757 if len(self._errorDetails[worstlevelName]) > 0:
758 firstError = self._errorDetails[worstlevelName][0]
759 else:
760 firstError = None
761
762 return {'level': worstlevelName, 'nLevel': worstLevel, 'firstError': firstError}
763

Member Data Documentation

◆ _errorDetails

python.trfValidation.scriptLogFileReport._errorDetails = {}
protected

Definition at line 712 of file trfValidation.py.

◆ _levelCounter

python.trfValidation.scriptLogFileReport._levelCounter = {}
protected

Definition at line 711 of file trfValidation.py.

◆ _logfile

list python.trfValidation.logFileReport._logfile = [logfile, ]
protectedinherited

Definition at line 181 of file trfValidation.py.

◆ _msgDetails

python.trfValidation.logFileReport._msgDetails = msgDetailLevel
protectedinherited

Definition at line 186 of file trfValidation.py.

◆ _msgLimit

python.trfValidation.logFileReport._msgLimit = msgLimit
protectedinherited

Definition at line 185 of file trfValidation.py.

◆ _re

python.trfValidation.logFileReport._re = None
protectedinherited

Definition at line 187 of file trfValidation.py.


The documentation for this class was generated from the following file: