pvl.syslog: implement --syslog-severity
authorTero Marttila <terom@paivola.fi>
Sat, 12 Jan 2013 21:48:33 +0200
changeset 101 6b27d7010bd4
parent 100 0f34cf81b9f1
child 102 87ee46067066
pvl.syslog: implement --syslog-severity
pvl/syslog/args.py
pvl/syslog/parser.py
--- a/pvl/syslog/args.py	Sat Jan 12 21:42:03 2013 +0200
+++ b/pvl/syslog/args.py	Sat Jan 12 21:48:33 2013 +0200
@@ -32,6 +32,9 @@
     syslog.add_option('--syslog-facility',      metavar='FACILITY',
             help="Set/filter by given facility")
 
+    syslog.add_option('--syslog-severity',      metavar='SEVERITY',
+            help="Set given facility")
+
     syslog.add_option('--syslog-prog',          metavar='PROG',     default=prog,
             help="Filter by given prog: %default")
 
@@ -74,12 +77,14 @@
     parser = SyslogParser(
         raw         = options.syslog_raw,
         facility    = options.syslog_facility,
+        severity    = options.syslog_severity,
     )
 
     filter = SyslogFilter(
         # glob pattern
         prog        = options.syslog_prog,
         facility    = options.syslog_facility,
+        #severity   = options.sylog_severity,   # XXX: match as greater-than?
     )
 
     # polling
--- a/pvl/syslog/parser.py	Sat Jan 12 21:42:03 2013 +0200
+++ b/pvl/syslog/parser.py	Sat Jan 12 21:48:33 2013 +0200
@@ -119,13 +119,14 @@
         +   r"(?P<message>(?P<tag>(?P<program>[^:\]]+)(?:\[(?P<pid>\d+)\])?: )?(?P<text>.*))\n?"
     )
 
-    def __init__ (self, raw=False, facility=None) :
+    def __init__ (self, raw=False, facility=None, severity=None) :
         """
-            Using given underlying line source.
+            Using given facility/severity as default.
         """
 
         self.raw = raw
         self.facility = facility
+        self.severity = severity
 
     def parse_pri (self, match) :
         """
@@ -134,7 +135,7 @@
 
         pri = match.group('pri')
         facility = match.group('facility') or self.facility
-        severity = match.group('severity')
+        severity = match.group('severity') or self.severity
         
         if pri and pri.isdigit() :
             pri = int(pri)