File: Logger.py

package info (click to toggle)
mbot 0.3-5
  • links: PTS
  • area: main
  • in suites: sarge
  • size: 212 kB
  • ctags: 119
  • sloc: python: 595; makefile: 102; php: 98; sql: 59
file content (74 lines) | stat: -rw-r--r-- 2,432 bytes parent folder | download | duplicates (2)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
#!/usr/bin/env python

# mbot - a mail handling robot
#
# Author:  Dimitri Fontaine <dim@tapoueh.org>
# Author:  Christophe Truffier <toffe@nah-ko.org>
#
# This code is licensed under the GPL.
# Get yourself a version here : http://www.gnu.org/copyleft/gpl.html

# $Id: Logger.py,v 1.4 2003/12/21 02:28:58 nah-ko Exp $

import sys, os, syslog

class Logger:
        " Logging class for syslog or logfile use "
        # Log level dictionnary
        levels = {'debug':syslog.LOG_DEBUG,
                  'info':syslog.LOG_INFO,
                  'notice':syslog.LOG_NOTICE,
                  'warning':syslog.LOG_WARNING,
                  'err':syslog.LOG_ERR,
                  'crit':syslog.LOG_CRIT,
                  'alert':syslog.LOG_ALERT,
                  'emerg':syslog.LOG_EMERG
                 }

        def __init__(self, LogLevel="debug"):
                # Default log level
                self.log_level = self.getLevel(LogLevel)

                # Service and pid init
                Service = os.path.basename(sys.argv[0]).split('.')[0]
                Pid = int(os.getpid())

                syslog.openlog('%s[%d]' % (Service, Pid))

        def log(self, message, log_level):
                ''' Turning log formating into standard way '''
                level = self.getLevel(log_level)

                if level <= self.log_level:
                        syslog.syslog(level, message)

        def emerg(self, message):
                self.log("[EMERG] %s" % message, "emerg")

        def alert(self, message):
                self.log("[ALERT] %s" % message, "alert")

        def crit(self, message):
                self.log("[CRIT] %s" % message, "crit")

        def err(self, message):
                self.log("[ERR] %s" % message, "err")

        def warning(self, message):
                self.log("[WARNING] %s" % message, "warning")

        def notice(self, message):
                self.log("[NOTICE] %s" % message, "notice")

        def info(self, message):
                self.log("[INFO] %s" % message, "info")

        def debug(self, message):
                self.log("[DEBUG] %s" % message, "debug")

        def getLevel(self, level):
                """ Get the syslog value for log given level """
                if Logger.levels.has_key(level):
                        return Logger.levels[level]
                else:   
                        return self.default_level