Home | Trees | Indices | Help |
---|
|
1 # -------------------------------------------------------------------------- # 2 # Copyright 2006-2009, University of Chicago # 3 # Copyright 2008-2009, Distributed Systems Architecture Group, Universidad # 4 # Complutense de Madrid (dsa-research.org) # 5 # # 6 # Licensed under the Apache License, Version 2.0 (the "License"); you may # 7 # not use this file except in compliance with the License. You may obtain # 8 # a copy of the License at # 9 # # 10 # http://www.apache.org/licenses/LICENSE-2.0 # 11 # # 12 # Unless required by applicable law or agreed to in writing, software # 13 # distributed under the License is distributed on an "AS IS" BASIS, # 14 # WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. # 15 # See the License for the specific language governing permissions and # 16 # limitations under the License. # 17 # -------------------------------------------------------------------------- # 18 19 import logging 20 import sys 21 from haizea.common.utils import get_clock 22 from haizea.common.constants import LOGLEVEL_VDEBUG, LOGLEVEL_STATUS 23 24 logging.addLevelName(LOGLEVEL_VDEBUG, "VDEBUG") 25 logging.addLevelName(LOGLEVEL_STATUS, "STATUS") 26 27 # Custom logger that uses our log record295931 # Modify "extra" parameter keyword 32 try: 33 haizeatime = get_clock().get_time() 34 except: 35 # This is a kludge. Basically, calling get_clock will 36 # fail if Manager is not yet fully constructed (since it's 37 # a singleton). The more correct solution is to more cleanly 38 # separate the initialization code in the Manager from the 39 # initialization that actually involves interacting with 40 # other components (which may want to use the logger) 41 haizeatime = " " 42 extra = { "haizeatime" : haizeatime} 43 if sys.version_info[1] <= 4: 44 name = "[%s] %s" % (haizeatime, name) 45 return logging.Logger.makeRecord(self, name, lvl, fn, lno, msg, args, exc_info) 46 else: 47 return logging.Logger.makeRecord(self, name, lvl, fn, lno, msg, args, exc_info, func, extra)4850 self.log(logging.getLevelName("STATUS"), msg)5153 # Since there is such a huge amount of vdebug messages, we check the 54 # log level manually to decide if we call the log function or not. 55 # (this actually saves quite a bit of cycles spent in logging functions 56 # that ultimately determine that the message doesn't have to printed) 57 if self.getEffectiveLevel() == LOGLEVEL_VDEBUG: 58 self.log(logging.getLevelName("VDEBUG"), msg)
Home | Trees | Indices | Help |
---|
Generated by Epydoc 3.0.1 on Thu Dec 17 10:59:25 2009 | http://epydoc.sourceforge.net |