def writeLog(self, collectedLog): if self._out is None: return if self._rejectLog(collectedLog): return httpRequest = getScoped(collectedLog, scopeNames=(), key='httpRequest') httpResponse = getScoped(collectedLog, scopeNames=(), key='httpResponse') if not 'Client' in httpRequest: return headers = getFirst(httpRequest, 'Headers', {}) template = APACHE_LOGLINE exception = getFirst(httpResponse, 'exception') if exception: template = ERROR_LOGLINE self._out.write(template.format( ipaddress=getFirst(httpRequest, key='Client', default=('-', 0))[0], user='******', timestamp=strftime('%d/%b/%Y:%H:%M:%S +0000', gmtime(getFirst(httpRequest, 'timestamp'))), Method=getFirst(httpRequest, 'Method', '-'), pathAndQuery=stripToPathAndQuery(getFirst(httpRequest, 'RequestURI', '')), status=getFirst(httpResponse, 'httpStatus', '0'), responseSize=getFirst(httpResponse, 'size') or '-', Referer=headers.get('Referer', '-'), UserAgent=headers.get('User-Agent', '-'), HTTPVersion=getFirst(httpRequest, 'HTTPVersion', '1.0'), Exception=None if not exception else repr(exception) )) self._out.flush()
def writeLog(self, collectedLog): if self._out is None: return if self._rejectLog(collectedLog): return httpRequest = getScoped(collectedLog, scopeNames=(), key='httpRequest') httpResponse = getScoped(collectedLog, scopeNames=(), key='httpResponse') if not 'Client' in httpRequest: return headers = getFirst(httpRequest, 'Headers', {}) template = APACHE_LOGLINE exception = getFirst(httpResponse, 'exception') if exception: template = ERROR_LOGLINE self._out.write( template.format( ipaddress=getFirst(httpRequest, key='Client', default=('-', 0))[0], user='******', timestamp=strftime('%d/%b/%Y:%H:%M:%S +0000', gmtime(getFirst(httpRequest, 'timestamp'))), Method=getFirst(httpRequest, 'Method', '-'), pathAndQuery=stripToPathAndQuery( getFirst(httpRequest, 'RequestURI', '')), status=getFirst(httpResponse, 'httpStatus', '0'), responseSize=getFirst(httpResponse, 'size') or '-', Referer=headers.get('Referer', '-'), UserAgent=headers.get('User-Agent', '-'), HTTPVersion=getFirst(httpRequest, 'HTTPVersion', '1.0'), Exception=None if not exception else repr(exception))) self._out.flush()
def writeLog(self, collectedLog): if not scopePresent(collectedLog, self._scopeNames): return httpRequest = getScoped(collectedLog, scopeNames=self._scopeNames, key='httpRequest') httpResponse = getScoped(collectedLog, scopeNames=self._scopeNames, key='httpResponse') if not 'Client' in httpRequest: return path = getFirst(httpRequest, 'path') self._log.log( timestamp=getFirst(httpRequest, 'timestamp') or time(), path=path, ipAddress=getFirst(httpRequest, 'Client')[0], size=getFirst(httpResponse, 'size', 0)/1024.0, duration=getFirst(httpResponse, 'duration'), numberOfRecords=self._numberOfRecords(collectedLog), queryArguments=self._queryArguments(collectedLog), status=getFirst(httpResponse, 'httpStatus', '0'), )
def _queryArguments(self, collectedLog): args = collectedLog if self._argumentSelectionScope is not None: args = getScoped(collectedLog, scopeNames=self._scopeNames, key=self._argumentSelectionScope) if self._argumentSelectionKey is not None: args = getFirst( args, key=self._argumentSelectionKey, default={} ) try: args = self.call.determineQueryArguments(collectedLog=collectedLog, scopeNames=self._scopeNames, currentArgs=args) except NoneOfTheObserversRespond: pass return sortedUrlEncode(args)
def _numberOfRecords(self, collectedLog): return getFirst(getScoped(collectedLog, scopeNames=self._scopeNames, key=self._numberOfRecordsSelectionScope), self._numberOfRecordsSelectionKey)