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 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 639 of file trfValidation.py.

Constructor & Destructor Documentation

◆ __init__()

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

Definition at line 640 of file trfValidation.py.

640 def __init__(self, logfile=None, msgLimit=200, msgDetailLevel=stdLogLevels['ERROR']):
641 self._levelCounter = {}
642 self._errorDetails = {}
643 self.resetReport()
644 super(scriptLogFileReport, self).__init__(logfile, msgLimit, msgDetailLevel)
645

Member Function Documentation

◆ __str__()

python.trfValidation.scriptLogFileReport.__str__ ( self)

Definition at line 694 of file trfValidation.py.

694 def __str__(self):
695 return str(self._levelCounter) + str(self._errorDetails)
696

◆ firstError()

python.trfValidation.logFileReport.firstError ( self)
inherited

Reimplemented in python.trfValidation.athenaLogFileReport.

Definition at line 131 of file trfValidation.py.

131 def firstError(self):
132 pass
133

◆ resetReport()

python.trfValidation.scriptLogFileReport.resetReport ( self)

Reimplemented from python.trfValidation.logFileReport.

Definition at line 646 of file trfValidation.py.

646 def resetReport(self):
647 self._levelCounter.clear()
648 for level in list(stdLogLevels) + ['UNKNOWN', 'IGNORED']:
649 self._levelCounter[level] = 0
650
651 self._errorDetails.clear()
652 for level in self._levelCounter: # List of dicts {'message': errMsg, 'firstLine': lineNo, 'count': N}
653 self._errorDetails[level] = []
654
void clear()
Empty the pool.

◆ rootSysErrorParser()

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

Definition at line 697 of file trfValidation.py.

697 def rootSysErrorParser(self, line, lineCounter):
698 msg.debug('Identified ROOT IO problem - adding to error detail report')
699 self._levelCounter['FATAL'] += 1
700 self._errorDetails['FATAL'].append({'message': line, 'firstLine': lineCounter, 'count': 1})
701

◆ scanLogFile()

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

Reimplemented from python.trfValidation.logFileReport.

Definition at line 655 of file trfValidation.py.

655 def scanLogFile(self, resetReport=False):
656 if resetReport:
657 self.resetReport()
658
659 for log in self._logfile:
660 msg.info('Scanning logfile {0}'.format(log))
661 try:
662 myGen = trfUtils.lineByLine(log)
663 except IOError as e:
664 msg.error('Failed to open transform logfile {0}: {1:s}'.format(log, e))
665 # Return this as a small report
666 self._levelCounter['ERROR'] = 1
667 self._errorDetails['ERROR'] = {'message': str(e), 'firstLine': 0, 'count': 1}
668 return
669
670 for line, lineCounter in myGen:
671 # TODO: This implementation currently only scans for Root SysErrors.
672 # General solution would be a have common error parser for all system level
673 # errors those all also handled by AthenaLogFileReport.
674 if line.__contains__('Error in <TFile::ReadBuffer>') or \
675 line.__contains__('Error in <TFile::WriteBuffer>'):
676 self.rootSysErrorParser(line, lineCounter)
677

◆ worstError()

python.trfValidation.scriptLogFileReport.worstError ( self)

Reimplemented from python.trfValidation.logFileReport.

Definition at line 679 of file trfValidation.py.

679 def worstError(self):
680 worstlevelName = 'DEBUG'
681 worstLevel = stdLogLevels[worstlevelName]
682 for levelName, count in self._levelCounter.items():
683 if count > 0 and stdLogLevels.get(levelName, 0) > worstLevel:
684 worstlevelName = levelName
685 worstLevel = stdLogLevels[levelName]
686
687 if len(self._errorDetails[worstlevelName]) > 0:
688 firstError = self._errorDetails[worstlevelName][0]
689 else:
690 firstError = None
691
692 return {'level': worstlevelName, 'nLevel': worstLevel, 'firstError': firstError}
693

Member Data Documentation

◆ _errorDetails

python.trfValidation.scriptLogFileReport._errorDetails = {}
protected

Definition at line 642 of file trfValidation.py.

◆ _levelCounter

python.trfValidation.scriptLogFileReport._levelCounter = {}
protected

Definition at line 641 of file trfValidation.py.

◆ _logfile

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

Definition at line 111 of file trfValidation.py.

◆ _msgDetails

python.trfValidation.logFileReport._msgDetails = msgDetailLevel
protectedinherited

Definition at line 116 of file trfValidation.py.

◆ _msgLimit

python.trfValidation.logFileReport._msgLimit = msgLimit
protectedinherited

Definition at line 115 of file trfValidation.py.

◆ _re

python.trfValidation.logFileReport._re = None
protectedinherited

Definition at line 117 of file trfValidation.py.


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