class DummyLogFile(object): '''Dummy log file used for testing.''' def __init__(self, worker_id, directory, rotateLength, maxRotatedFiles): self.worker_id = worker_id self.directory = directory self.rotateLength = rotateLength self.maxRotatedFiles = maxRotatedFiles self.closed_count = 0 self.logfile = LogFile(worker_id, directory, rotateLength=rotateLength, maxRotatedFiles=maxRotatedFiles) self.path = self.logfile.path @property def logs(self): reader = self.logfile.getCurrentLog() logs = [] lines = reader.readLines() while lines: logs.extend(lines) lines = reader.readLines() return logs def write(self, data): self.logfile.write(data) self.logfile.flush() def close(self): self.closed_count += 1 def listLogs(self): return []
class DummyLogFile(object): '''Dummy log file used for testing.''' def __init__( self, worker_id, directory, rotateLength, maxRotatedFiles): self.worker_id = worker_id self.directory = directory self.rotateLength = rotateLength self.maxRotatedFiles = maxRotatedFiles self.closed_count = 0 self.logfile = LogFile( worker_id, directory, rotateLength=rotateLength, maxRotatedFiles=maxRotatedFiles) self.path = self.logfile.path @property def logs(self): reader = self.logfile.getCurrentLog() logs = [] lines = reader.readLines() while lines: logs.extend(lines) lines = reader.readLines() return logs def write(self, data): self.logfile.write(data) self.logfile.flush() def close(self): self.closed_count += 1 def listLogs(self): return []
def emmit(self, event): if event.get("isDebug", False) and is_production(): return # Don't log debug messages in production. location, prefix, log_time, log_time_str, entry_text = self.parse_from(event) folder, name = build_file(self.folder, location, self.extension) try: log = LogFile(name, folder) log.write("%s %s\n\t%s\n" % (prefix, log_time_str, entry_text.replace("\n", "\n\t\t"))) log.flush() log.close() finally: if event.get("transmit", False) and not event.get("isDebug", False): self.service.write_entry(location, log_time, entry_text)
def receive_logs(self, logs, transport): client_mac = self.__stations[transport.client].mac; client_mac = client_mac.translate(None, ":|/\\") files = {} for time, location, msg in logs: if location in files: log_file = files[location] else: loc = [client_mac] + list(location) folder, name = build_file(self.__output_folder, loc, self.__extension) log_file = LogFile(name, folder) files[location] = log_file log_time_str = strftime("%Y-%m-%d %H:%M:%S:%f", gmtime(time)) log_file.write(">%s\n\t%s\n" % (log_time_str, msg.replace("\n", "\n\t\t"))) # Now close those files for log_file in files.itervalues(): log_file.flush() log_file.close() return {"accepted": True}