##
## Copyright (c) 2006 Jason Dillon
##
## Licensed under the Apache License, Version 2.0 (the "License");
## you may not use this file except in compliance with the License.
## You may obtain a copy of the License at
##
##     http://www.apache.org/licenses/LICENSE-2.0
##
## Unless required by applicable law or agreed to in writing, software
## distributed under the License is distributed on an "AS IS" BASIS,
## WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
## See the License for the specific language governing permissions and
## limitations under the License.
##

##
## $Id: logging.py 22 2006-04-15 04:49:47Z user57 $
##

import sys, os, logging, logging.config, types

__initialized = False

def init():
    dirname = os.path.dirname(sys.argv[0])
    filename = os.path.join(dirname, "logging.conf")
    logging.config.fileConfig(filename)
    
    global __initialized
    __initialized = True

def getLogger(name):
    if not __initialized:
        init()
    
    return logging.getLogger(getLoggerName(name))

def getLoggerName(o):
    if type(o) == types.StringType:
        return o
    else:
        # Assume we have a Python class
        try:
            return str(o.__class__)
        except:
            return str(o)

def setThreshold(level):
    root = logging.getLogger()
    root.setLevel(level)

def setThresholdDebug():
    setThreshold(logging.DEBUG)

def setThresholdError():
    setThreshold(logging.ERROR)