pvl/syslog/parser.py
changeset 101 6b27d7010bd4
parent 74 952ee07efd7a
equal deleted inserted replaced
100:0f34cf81b9f1 101:6b27d7010bd4
   117 
   117 
   118         # the message, including possible tag/pid
   118         # the message, including possible tag/pid
   119         +   r"(?P<message>(?P<tag>(?P<program>[^:\]]+)(?:\[(?P<pid>\d+)\])?: )?(?P<text>.*))\n?"
   119         +   r"(?P<message>(?P<tag>(?P<program>[^:\]]+)(?:\[(?P<pid>\d+)\])?: )?(?P<text>.*))\n?"
   120     )
   120     )
   121 
   121 
   122     def __init__ (self, raw=False, facility=None) :
   122     def __init__ (self, raw=False, facility=None, severity=None) :
   123         """
   123         """
   124             Using given underlying line source.
   124             Using given facility/severity as default.
   125         """
   125         """
   126 
   126 
   127         self.raw = raw
   127         self.raw = raw
   128         self.facility = facility
   128         self.facility = facility
       
   129         self.severity = severity
   129 
   130 
   130     def parse_pri (self, match) :
   131     def parse_pri (self, match) :
   131         """
   132         """
   132             Parse pri/facility/severity.
   133             Parse pri/facility/severity.
   133         """
   134         """
   134 
   135 
   135         pri = match.group('pri')
   136         pri = match.group('pri')
   136         facility = match.group('facility') or self.facility
   137         facility = match.group('facility') or self.facility
   137         severity = match.group('severity')
   138         severity = match.group('severity') or self.severity
   138         
   139         
   139         if pri and pri.isdigit() :
   140         if pri and pri.isdigit() :
   140             pri = int(pri)
   141             pri = int(pri)
   141             facility, severity = divmod(pri, 8)
   142             facility, severity = divmod(pri, 8)
   142 
   143