How's my approach to logging?
You can find approach you are looking for in the logging cookbook and logging howto: Default logging module provides nice configuration feature. 

So your code will be like this: 

simpleExample.py (main):

import os
import logging
import logging.config
logging.config.fileConfig(os.path.join(os.path.dirname(__file__),
                          'logging.conf')  
import util

# create logger
logger = logging.getLogger("simpleExample") 

# 'application' code
logger.info('starting now')

util.p()

logger.critical('quitting!')


util.py

import logging
logger = logging.getLogger("simpleExample.Utils")

def p():
    for x in range(10):
        logger.warn('.')


And all the magic of logging configuration will be avalible in config file:
logging.cfg: 

[loggers]
keys=root,simpleExample

[handlers]
keys=consoleHandler

[formatters]
keys=simpleFormatter

[logger_root]
level=DEBUG
handlers=consoleHandler

[logger_simpleExample]
level=DEBUG
handlers=consoleHandler
qualname=simpleExample
propagate=0

[handler_consoleHandler]
class=StreamHandler
level=DEBUG
formatter=simpleFormatter
args=(sys.stdout,)

[formatter_simpleFormatter]
format=%(asctime)s - %(name)s - %(levelname)s - %(message)s
datefmt=`


You can use any handlers you want, and you can change levels, formats etc and you don't have to change your code.