prelude-correlator/master: Specify our own Prelude callback so that log entry are normalized

[email protected] Thu, 9 Jul 2009 17:57:27 +0200 (CEST)
Newsgroups gmane.comp.security.ids.prelude.cvs
Message-ID <[email protected]>
commit dff006a3873a116de2ce242048af373328fd0152
Author: Yoann Vandoorselaere <[email protected]>
Date:   Mon Jul 6 09:32:45 2009 +0200

    Specify our own Prelude callback so that log entry are normalized


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

 PreludeCorrelator/log.py |   32 +++++++++++++++++++++++++++++++-
 1 files changed, 31 insertions(+), 1 deletions(-)

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

diff --git a/PreludeCorrelator/log.py b/PreludeCorrelator/log.py
index 89f6b0a..80f5378 100644
--- a/PreludeCorrelator/log.py
+++ b/PreludeCorrelator/log.py
@@ -17,12 +17,39 @@
 # along with this program; see the file COPYING.  If not, write to
 # the Free Software Foundation, 675 Mass Ave, Cambridge, MA 02139, USA.
 
-
+import PreludeEasy
 import logging, logging.config, logging.handlers, sys, os, siteconfig
 
 class Log(logging.Logger):
+    def __log_callback(self, level, log):
+        log = log.rstrip('\n')
+
+        if level == PreludeEasy.PreludeLog.DEBUG:
+            self.debug(log)
+
+        elif level == PreludeEasy.PreludeLog.INFO:
+            self.info(log)
+
+        elif level == PreludeEasy.PreludeLog.WARNING:
+            self.warning(log)
+
+        elif level == PreludeEasy.PreludeLog.ERROR:
+            self.error(log)
+
+        elif level == PreludeEasy.PreludeLog.CRITICAL:
+            self.critical(log)
+
+        else:
+            self.warnings(("[unknown:%d] " % level) + log)
+
     def __init__(self):
         try:
+                PreludeEasy.PreludeLog.SetCallback(self.__log_callback)
+        except:
+                # PreludeLog is available in recent libprelude version, we do not want to fail if it's not.
+                pass
+
+        try:
                 logging.config.fileConfig(siteconfig.conf_dir + "/prelude-correlator.conf")
         except Exception, e:
                 DATEFMT = "%d %b %H:%M:%S"
@@ -40,5 +67,8 @@ class Log(logging.Logger):
     def warning(self, log):
         self._logger.warning(log, extra = { "pid": os.getpid() })
 
+    def error(self, log):
+        self._logger.error(log, extra = { "pid": os.getpid() })
+
     def critical(self, log):
         self._logger.critical(log, extra = { "pid": os.getpid() })
_______________________________________________
Prelude-cvslog site list
[email protected]
http://lists.prelude-ids.org/mailman/listinfo/prelude-cvslog