tensor/logs/follower.py
def get_fn(self, fn, max_lines=None):
        """Passes each parsed log line to `fn`
        This is a better idea than storing a giant log file in memory
        """
        stat = os.stat(self.logfile)

        if (stat.st_ino == self.lastInode) and (stat.st_size == self.lastSize):
            # Nothing new
            return []

        # Handle rollover and rotations vaguely
        if (stat.st_ino != self.lastInode) or (stat.st_size < self.lastSize):
            self.lastSize = 0

        fi = open(self.logfile, 'rt')
        fi.seek(self.lastSize)

        self.lastInode = stat.st_ino

        lines = 0

        for i in fi:
            lines += 1
            if max_lines and (lines > max_lines):
                self.storeLast()
                fi.close()
                return 

            if '\n' in i:
                self.lastSize += len(i)
                if self.parser:
                    line = self.parser(i.strip('\n'))
                else:
                    line = i.strip('\n')

                fn(line)

        self.storeLast()

        fi.close()
def get_fn(self, fn, max_lines=None):
        stat = os.stat(self.logfile)

        if (stat.st_ino == self.lastInode) and (stat.st_size == self.lastSize):
            # Nothing new
            return []

        # Handle rollover and rotations vaguely
        if (stat.st_ino != self.lastInode) or (stat.st_size < self.lastSize):
            self.lastSize = 0

        fi = open(self.logfile, 'rt')
        fi.seek(self.lastSize)

        self.lastInode = stat.st_ino

        lines = 0

        for i in fi:
            lines += 1
            if max_lines and (lines > max_lines):
                self.storeLast()
                fi.close()
                return 

            if '\n' in i:
                self.lastSize += len(i)
                if self.parser:
                    line = self.parser(i.strip('\n'))
                else:
                    line = i.strip('\n')

                fn(line)

        self.storeLast()

        fi.close()
def get_fn ( self , fn , max_lines = None ) : stat = os . stat ( self . logfile ) if ( stat . st_ino == self . lastInode ) and ( stat . st_size == self . lastSize ) : # Nothing new return [ ] # Handle rollover and rotations vaguely if ( stat . st_ino != self . lastInode ) or ( stat . st_size < self . lastSize ) : self . lastSize = 0 fi = open ( self . logfile , 'rt' ) fi . seek ( self . lastSize ) self . lastInode = stat . st_ino lines = 0 for i in fi : lines += 1 if max_lines and ( lines > max_lines ) : self . storeLast ( ) fi . close ( ) return if '\n' in i : self . lastSize += len ( i ) if self . parser : line = self . parser ( i . strip ( '\n' ) ) else : line = i . strip ( '\n' ) fn ( line ) self . storeLast ( ) fi . close ( )
Passes each parsed log line to `fn`
        This is a better idea than storing a giant log file in memory
Passes each parsed log line to fn This is a better idea than storing a giant log file in memory