def read_bot_log(self, bot_id, log_level, number_of_lines): bot_log_path = os.path.join(self.system['logging_path'], bot_id + '.log') if not os.path.isfile(bot_log_path): logger.error("Log path not found: {}".format(bot_log_path)) return [] messages = list() message_overflow = '' message_count = 0 for line in utils.reverse_readline(bot_log_path): log_message = utils.parse_logline(line) if type(log_message) is not dict: message_overflow = '\n'.join([line, message_overflow]) continue if LOG_LEVEL[log_message['log_level']] < log_level: continue if message_overflow: log_message['extended_message'] = message_overflow message_overflow = '' message_count += 1 messages.append(log_message) if message_count >= number_of_lines and number_of_lines != -1: break log_log_messages(messages[::-1]) return messages[::-1]
def read_bot_log(self, bot_id, log_level, number_of_lines): bot_log_path = os.path.join(self.parameters.logging_path, bot_id + '.log') if not os.path.isfile(bot_log_path): logger.error("Log path not found: {}".format(bot_log_path)) return [] messages = list() message_overflow = '' message_count = 0 for line in utils.reverse_readline(bot_log_path): log_message = utils.parse_logline(line) if type(log_message) is not dict: message_overflow = '\n'.join([line, message_overflow]) continue if LOG_LEVEL[log_message['log_level']] < log_level: continue if message_overflow: log_message['extended_message'] = message_overflow message_overflow = '' message_count += 1 messages.append(log_message) if message_count >= number_of_lines and number_of_lines != -1: break log_log_messages(messages[::-1]) return messages[::-1]
def read_bot_log(self, bot_id, log_level, number_of_lines): if self.parameters.logging_handler == 'file': bot_log_path = os.path.join(self.parameters.logging_path, bot_id + '.log') if not os.path.isfile(bot_log_path): logger.error("Log path not found: {}".format(bot_log_path)) return [] elif self.parameters.logging_handler == 'syslog': bot_log_path = '/var/log/syslog' if not os.access(bot_log_path, os.R_OK): self.logger.error('File %r is not readable.' % bot_log_path) return 'error' messages = list() message_overflow = '' message_count = 0 for line in utils.reverse_readline(bot_log_path): if self.parameters.logging_handler == 'file': log_message = utils.parse_logline(line) if self.parameters.logging_handler == 'syslog': log_message = utils.parse_logline(line, regex=utils.SYSLOG_REGEX) if type(log_message) is not dict: if self.parameters.logging_handler == 'file': message_overflow = '\n'.join([line, message_overflow]) continue if log_message['bot_id'] != bot_id: continue if LOG_LEVEL[log_message['log_level']] < LOG_LEVEL[log_level]: continue if message_overflow: log_message['extended_message'] = message_overflow message_overflow = '' if self.parameters.logging_handler == 'syslog': log_message['message'] = log_message['message'].replace( '#012', '\n') message_count += 1 messages.append(log_message) if message_count >= number_of_lines and number_of_lines != -1: break log_log_messages(messages[::-1]) return messages[::-1]
def read_bot_log(self, bot_id, log_level, number_of_lines): if self.parameters.logging_handler == 'file': bot_log_path = os.path.join(self.parameters.logging_path, bot_id + '.log') if not os.path.isfile(bot_log_path): logger.error("Log path not found: %s", bot_log_path) return 2, [] elif self.parameters.logging_handler == 'syslog': bot_log_path = '/var/log/syslog' else: self.abort("Unknow logging handler %r" % self.parameters.logging_handler) if not os.access(bot_log_path, os.R_OK): self.logger.error('File %r is not readable.', bot_log_path) return 1, 'error' messages = [] message_overflow = '' message_count = 0 for line in utils.reverse_readline(bot_log_path): if self.parameters.logging_handler == 'file': log_message = utils.parse_logline(line) if self.parameters.logging_handler == 'syslog': log_message = utils.parse_logline(line, regex=utils.SYSLOG_REGEX) if type(log_message) is not dict: if self.parameters.logging_handler == 'file': message_overflow = '\n'.join([line, message_overflow]) continue if log_message['bot_id'] != bot_id: continue if LOG_LEVEL[log_message['log_level']] < LOG_LEVEL[log_level]: continue if message_overflow: log_message['extended_message'] = message_overflow message_overflow = '' if self.parameters.logging_handler == 'syslog': log_message['message'] = log_message['message'].replace('#012', '\n') message_count += 1 messages.append(log_message) if message_count >= number_of_lines and number_of_lines != -1: break log_log_messages(messages[::-1]) return 0, messages[::-1]