invirt-configurize sipb-xen-dhcp
[invirt/packages/invirt-dhcp.git] / code / event_logger.py
1 # Anemon Dhcp
2 # Copyright (C) 2005 Mathieu Ignacio -- mignacio@april.org
3 #
4 # This program is free software; you can redistribute it and/or modify
5 # it under the terms of the GNU General Public License as published by
6 # the Free Software Foundation; either version 2 of the License, or
7 # (at your option) any later version.
8 #
9 # This program is distributed in the hope that it will be useful,
10 # but WITHOUT ANY WARRANTY; without even the implied warranty of
11 # MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
12 # GNU General Public License for more details.
13 #
14 # You should have received a copy of the GNU General Public License
15 # along with this program; if not, write to the Free Software
16 # Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA  02110-1301, USA
17
18 import sys
19 from logging import *
20
21
22
23 class EventLogger:
24     def __init__(self,logtype="stdout",loglevel=WARNING,option={}):
25         self.loglevel = loglevel
26         self.logtype = logtype
27
28         self.info = INFO
29         self.debug = DEBUG
30         self.warn = WARN
31         self.error = ERROR
32         self.critical = CRITICAL
33
34
35         self.logger = getLogger('SipbXenDhcpServer')
36
37         if logtype == "file" :
38             # into file logger
39             handler = FileHandler(option["log_file"])
40             
41         elif logtype == "syslog" :
42             handler = SysLogHandler((option["log_host"],option["log_port"]))
43
44         elif logtype == "http" :
45             handler = HTTPHandler(option["log_host"],option["log_url"],option["log_method"])
46
47         else : # logtype == "stdout" :
48             handler = StreamHandler()
49
50
51
52         handler.setFormatter(Formatter('%(asctime)s %(levelname)s %(message)s'))
53         self.logger.addHandler(handler) 
54         self.logger.setLevel(loglevel)
55
56     def Output(self,level,infostring) :
57         self.logger.log(level,infostring)
58
59 def init(logtype,level,path):
60     global Log
61     
62     Log = EventLogger(logtype,eval(level),path)
63     Log.Output(INFO,"EventLogger : Started.")