logging 至 file 和 cli 附简短debug设置

多数情况下(呃,我是说调参党的话)需要将logging 的输出同时写到 文件 和命令行中,但这个接口似乎有些繁,每次都要艰难地找。在万能的stack overflow上 找到些线索,记在这里:

import logging
outputPath='./'
logging.basicConfig(level=logging.INFO,
            filename=outputPath+'-training.log',
                    format='[%(asctime)s] {%(pathname)s:%(lineno)d} %(levelname)s - %(message)s'
            )
console = logging.StreamHandler()
logging.getLogger('').addHandler(console)
formatter = logging.Formatter('[%(asctime)s] {%(pathname)s:%(lineno)d} %(levelname)s - %(message)s')
console.setFormatter(formatter)

logging.info('Hello World!')
#test ok!

另外 ,

  1. 在MXNet中 glog和logging 似乎有些冲突,最好用logging ;
  2. logging 的配置要放在最前面,否则容易失效。

debug设置

debug设置主要是直接输出到屏幕上,设置叫简短,但还是令人有些烦:

import logging
logging.basicConfig(level=logging.DEBUG,format='%(levelname)s: %(asctime)s %(filename)s [line: %(lineno)d]  %(message)s')
logging.debug('This is debug print')
posted @ 2017-04-28 10:15  rotxin  阅读(209)  评论(0编辑  收藏  举报