prelude-correlator/master: Log to syslog when daemon mode is used

[email protected] Wed, 10 Mar 2010 12:00:31 +0100 (CET)
Newsgroups gmane.comp.security.ids.prelude.cvs
Message-ID <[email protected]>
commit 5a358aa37acd702f8e6e5185df9f2743d2284818
Author: Yoann Vandoorselaere <[email protected]>
Date:   Wed Mar 10 12:01:01 2010 +0100

    Log to syslog when daemon mode is used
    
    When Prelude-Correlator is started as a daemon, make sure we use
    syslog for logging.


========================================

 PreludeCorrelator/log.py  |   14 ++++++++++----
 PreludeCorrelator/main.py |    8 ++++----
 2 files changed, 14 insertions(+), 8 deletions(-)

========================================

diff --git a/PreludeCorrelator/log.py b/PreludeCorrelator/log.py
index 2e54cdd..89e1e5c 100644
--- a/PreludeCorrelator/log.py
+++ b/PreludeCorrelator/log.py
@@ -42,7 +42,7 @@ class Log(logging.Logger):
         else:
             self.warnings(("[unknown:%d] " % level) + log)
 
-    def __init__(self, conf_filename):
+    def __init__(self, options):
         try:
                 PreludeEasy.PreludeLog.SetCallback(self.__log_callback)
         except:
@@ -50,19 +50,25 @@ class Log(logging.Logger):
                 pass
 
         self._have_extra = sys.version_info > (2, 4)
+
         try:
-                logging.config.fileConfig(conf_filename)
+                logging.config.fileConfig(options.config)
         except Exception, e:
                 DATEFMT = "%d %b %H:%M:%S"
                 if not self._have_extra:
-                        FORMAT="%(asctime)s %(levelname)s: %(message)s"
+                        FORMAT="%(asctime)s %(name)s %(levelname)s: %(message)s"
                 else:
-                        FORMAT="%(asctime)s (process:%(pid)d) %(levelname)s: %(message)s"
+                        FORMAT="%(asctime)s %(name)s (process:%(pid)d) %(levelname)s: %(message)s"
 
                 logging.basicConfig(level=logging.DEBUG, format=FORMAT, datefmt=DATEFMT, stream=sys.stderr)
 
         self._logger = logging.getLogger("prelude-correlator")
 
+        if options.daemon is True:
+                hdlr = logging.handlers.SysLogHandler('/dev/log')
+                hdlr.setFormatter(logging.Formatter('%(name)s: %(levelname)s: %(message)s'))
+                self._logger.addHandler(hdlr)
+
     def _log(self, log_func, log, extra):
         if self._have_extra:
                 log_func(log, extra=extra)
diff --git a/PreludeCorrelator/main.py b/PreludeCorrelator/main.py
index 1a71d23..69dc8e0 100644
--- a/PreludeCorrelator/main.py
+++ b/PreludeCorrelator/main.py
@@ -31,10 +31,10 @@ LIBPRELUDE_REQUIRED_VERSION = "0.9.25"
 
 
 class Env:
-        def __init__(self, conf_filename):
-                self.logger = log.Log(conf_filename)
+        def __init__(self, options):
+                self.logger = log.Log(options)
 
-                self.config = config.Config(conf_filename)
+                self.config = config.Config(options.config)
                 self.pluginmanager = pluginmanager.PluginManager(self)
 
                 self.logger.info("%d plugin have been loaded." % (self.pluginmanager.getPluginCount()))
@@ -131,7 +131,7 @@ def main():
         parser.add_option("--debug", action="store", dest="debug", type="int", help="Enable debug ouptut (optional debug level argument)", metavar="LEVEL")
         (options, args) = parser.parse_args()
 
-        env = Env(options.config)
+        env = Env(options)
 
         ifd = None
         if options.print_input:
_______________________________________________
Prelude-cvslog site list
[email protected]
http://lists.prelude-technologies.com/mailman/listinfo/prelude-cvslog