def parse(cls, parsed): ts = parse_timestamp(parsed.TIMESTAMP) if ts is None: # If no timestamp provided, fill in current UTC date and time timestamp = datetime.utcnow() else: timestamp = ts attr = {} for i in ('prival', 'version', 'hostname', 'app_name', 'procid', 'msgid'): I = i.upper() v = getattr(parsed, I, '-') if v in ["", "-"]: v = None else: v = v.decode('utf-8') attr[i] = v m = getattr(parsed, 'MSG', None) if m is not None: if m.startswith(BOM): msg = m[3:].decode('utf-8') else: msg = unicode(m) else: msg = None version = int(attr['version']) prival = int(attr['prival']) structured_data = StructuredData.parse(parsed) return cls( prival=prival, version=version, timestamp=timestamp, hostname=attr['hostname'], app_name=attr['app_name'], procid=attr['procid'], msgid=attr['msgid'], structured_data=structured_data, msg=msg )
def parse(cls, parsed): ts = parse_timestamp(parsed.TIMESTAMP) if ts is None: # If no timestamp provided, fill in current UTC date and time timestamp = datetime.utcnow() else: timestamp = ts attr = {} for i in ("prival", "version", "hostname", "app_name", "procid", "msgid"): I = i.upper() v = getattr(parsed, I, "-") if v in ["", "-"]: v = None else: v = v.decode("utf-8") attr[i] = v m = getattr(parsed, "MSG", None) if m is not None: if m.startswith(BOM): msg = m[3:].decode("utf-8") else: msg = unicode(m) else: msg = None version = int(attr["version"]) prival = int(attr["prival"]) structured_data = StructuredData.parse(parsed) return cls( prival=prival, version=version, timestamp=timestamp, hostname=attr["hostname"], app_name=attr["app_name"], procid=attr["procid"], msgid=attr["msgid"], structured_data=structured_data, msg=msg, )
def test_parse(self): for k, v in self.pairs.items(): self.assertEqual(v, parse_timestamp(k), k)