Date:
2009-05-27
Re: pythonで毎回使いたいloggingモジュールのテンプレート¶
pythonで毎回使いたいloggingモジュールのテンプレート - a2c.get.diary への時間差反応です。2ヶ月差? 自分が普段使っているloggingのテンプレを貼っておきます。複数のloggerオブジェクトを作れるとか色々やった痕跡があったりして、元記事よりもコードがでかいなぁ...。
import sys, logging
logger = logging.getLogger('foologger')
def setup_logger(opts):
# setup output
if opts.log:
hdlr = logging.FileHandler(opts.log, 'a')
else:
hdlr = logging.StreamHandler(sys.stdout)
formatter = logging.Formatter('%(asctime)s %(name)-12s %(levelname)-8s %(message)s')
hdlr.setFormatter(formatter)
logger.addHandler(hdlr)
if opts.debug:
logger.setLevel(logging.DEBUG)
else:
logger.setLevel(logging.INFO)
# setup error output
hdlr = logging.StreamHandler()
hdlr.setLevel(logging.ERROR)
hdlr.setFormatter(formatter)
logger.addHandler(hdlr)
def setup_optparser():
from optparse import OptionParser, OptionGroup
usage = 'usage: %prog [options] command'
parser = OptionParser(usage=usage)
parser.add_option('-l', '--log',
dest='log',
default='',
help="Filename for log output",
)
parser.add_option('-d', '--debug',
dest='debug',
action='store_true',
default=False,
help="Enable debug output",
)
group = OptionGroup(parser, "command",
"something else..."
)
parser.add_option_group(group)
return parser
if __name__ == '__main__':
parser = setup_optparser()
options, args = parser.parse_args(sys.argv)
setup_logger(options)
if len(args)<2:
parser.print_help()
sys.exit(1)
# do something...