#coding: UTF-8 ''' Created on 2014年1月6日 @author: mingliu ''' import logging#导入 mylog = logging.getLogger('mylogger')#申请一个名字 otherlog = logging.getLogger('mylogger')#同一个工程下面全部logger全可以统一根据名字获得,享用相同配置 mylog.setLevel(logging.ERROR)#设置输出级别 fh = logging.FileHandler('test.log')#设置输出信息物理位置(文件) fh.setLevel(logging.DEBUG)#设置handler输出级别 ch = logging.StreamHandler()#设置输出控制台 ch.setLevel(logging.INFO) formatter = logging.Formatter("%(pathname)s-%(module)s - %(lineno)d -%(asctime)s - %(name)s - %(levelname)s-%(levelno)s-%(thread)dn%(message)s")#输出信息格式 fh.setFormatter(formatter) #向handler添加输出格式 ch.setFormatter(formatter) mylog.addHandler(fh)#向logger添加handler mylog.addHandler(ch) if __name__ == '__main__': pass mylog.debug('testDebug') mylog.info('testInfo') mylog.warn('testWarn') mylog.error('testError') otherlog.debug('testDebug') otherlog.info('testInfo') otherlog.warn('testWarn') otherlog.error('testError')
使用配置文件
程序:
logging.config.fileConfig("logging.conf") mylog = logging.getLogger('mylogger')#申请一个名字
配置文件:
[loggers] keys=root,mylogger [handlers] keys=consoleHandler,fileHandler [formatters] keys=simpleFormatter [logger_root] level=DEBUG handlers=consoleHandler [logger_mylogger] level=DEBUG handlers=consoleHandler,fileHandler qualname=simpleExample propagate=0 [handler_fileHandler] class=FileHandler level=ERROR formatter=simpleFormatter args=('test.log',) [handler_consoleHandler] class=StreamHandler level=DEBUG formatter=simpleFormatter args=(sys.stdout,) [formatter_simpleFormatter] format=%(asctime)s - %(name)s - %(levelname)s - %(message)s