Example #1
0
    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')
Example #2
0
 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
Example #3
0
    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')