日志配置:
import logging fmt = "%(asctime)s [%(levelname)s] %(message)s" logging.basicConfig(format=fmt, filename="xxx.log", level=logging.INFO)
日志器获取、使用:
LOG = logging.getLogger(CONF.LOG_NAME) LOG.info("xxx" % (...) ) LOG.debug("x" % (...) )
2014.06.30 如何让log,只输出到文件,不输出到屏幕?
如果我们是自定义构造的log,而不是上述basicConfig,会发现,我们虽然只设定了file的handler,但是还是会输出到屏幕?
原因是:logging模块存在默认的root的handler(输出到屏幕),如果你不修改它,默认其他模块都会继承它,自动带上输出到屏幕,实在是。。
只需要在自己构造logging之前,添加这些即可:
root_logger = logging.getLogger("") root_logger.addHandler(logging.NullHandler())