def WriteLogEntry(self, log): '''Writes a Unified Log entry. Args: log (???): log entry: ''' if self._file_object: log[3] = UnifiedLogLib.ReadAPFSTime(log[3]) try: if self._mode == 'TSV_ALL': log[18] = '{0!s}'.format(log[18]).upper() log[19] = '{0!s}'.format(log[19]).upper() self._file_object.write( ('{}\t0x{:X}\t{}\t{}\t0x{:X}\t{}\t0x{:X}\t0x{:X}\t{}\t' '{}\t{}\t({})\t{}\t{}\t{}\t{}\t{}\t{}\t{}\t{}\t{}\t' '{}\n').format(log[0], log[1], log[2], log[3], log[4], log[5], log[6], log[7], log[8], log[9], log[10], log[11], log[12], log[13], log[14], log[15], log[16], log[17], log[18], log[19], log[20], log[21], log[22])) else: signpost = '' # (log[15] + ':') if log[15] else '' if log[15]: signpost += '[' + log[16] + ']' msg = (signpost + ' ') if signpost else '' msg += log[11] + ' ' + ( ('(' + log[12] + ') ') if log[12] else '') if len(log[13]) or len(log[14]): msg += '[' + log[13] + ':' + log[14] + '] ' msg += log[22] self._file_object.write( ('{time} {li[4]:<#10x} {li[5]:11} {li[6]:<#20x} ' '{li[8]:<6} {li[10]:<4} {message}\n').format( li=log, time=log[3], message=msg.replace('\n', ','))) except (IOError, OSError): logger.exception('Error writing to output file')
def dumpLogToStdout(self, logs, tracev3): for log in logs: t0 = UnifiedLogLib.ReadAPFSTime(log[3]) signpost = '' # (log[15] + ':') if log[15] else '' if log[15]: signpost += '[' + log[16] + ']' msg = (signpost + ' ') if signpost else '' msg += log[11] + ' ' + (('(' + log[12] + ') ') if log[12] else '') if len(log[13]) or len(log[14]): msg += '[' + log[13] + ':' + log[14] + '] ' msg += log[22] # self._file_object.write(( # '{time} {li[4]:<#10x} {li[5]:11} {li[6]:<#20x} ' # '{li[8]:<6} {li[10]:<4} {message}\n').format( # li=log, time=log[3], message=msg)) print( f'{t0} {log[4]:<#10x} {log[5]:11} {log[6]:<#20x} {log[8]:<6} {log[10]:<4} {msg}' ) pass
def WriteLogEntries(self, logs): '''Writes several Unified Log entries. Args: logs (???): list of log entries: ''' if self._connection: for log in logs: log[3] = UnifiedLogLib.ReadAPFSTime(log[3]) log[18] = '{0!s}'.format(log[18]) log[19] = '{0!s}'.format(log[19]) # TODO: cache queries to use executemany try: cursor = self._connection.cursor() cursor.executemany(self._INSERT_LOGS_VALUES_QUERY, logs) self._connection.commit() except sqlite3.Error: logger.exception('Error inserting data into database')