rename parsers, better journald integration
[logparse.git] / logparse / interface.py
index bee8d49f4ef46274e6f8d0b87b44b96e0d8c9e00..46c5aeaac765da942b3cd0cc1b5b20198c724d7c 100644 (file)
@@ -17,7 +17,7 @@ from copy import copy
 import logging
 import logging.handlers
 import os
-from sys import stdin, version
+from sys import exit, stdin, version
 from subprocess import check_output
 from datetime import datetime
 
@@ -94,6 +94,12 @@ def main():
     # Set up parsers
 
     loader = load_parsers.ParserLoader()
+
+    try:
+        loader.check_systemd()
+    except Exception as e:
+        logger.error("Failed to check systemd dependencies: ".format(e))
+
     if parser_names:
         for parser_name in parser_names:
             if parser_name not in ignore_logs:
@@ -105,8 +111,23 @@ def main():
 
     # Execute parsers
 
+    executed_parsers = []
+
     for parser in loader.parsers:
-        output.append_section(parser.parse_log())
+        if (argparser.parse_args().verbose 
+                or config.prefs.getboolean("logparse", "verbose")):
+            output.append_section(parser.parse_log())
+
+        else:
+            try:
+                output.append_section(parser.parse_log())
+            except Exception as e:
+                logger.error("Uncaught error executing logger {0}: {1}".format(
+                    parser.name, e))
+        executed_parsers.append(parser.name)
+
+    if len(executed_parsers) == 0:
+        exit()
 
     # Write footer
     output.append_footer()
@@ -213,6 +234,7 @@ def main():
 
     return
 
+
 def get_argparser():
     """
     Initialise arguments (in a separate function for documentation purposes)