日志写入是我们日常工作中常用到的功能,我们可以直接使用写文件的方式来以自己的方式写日志,另外,当我们在一个比较大的项目中,涉及到日志写入时,一般会使用logging模块来进行日志的写入,第一步,先写一个单例,创建一个logger对象:
def _instance(): global logger if logger is None: logging.config.fileConfig(os.path.join(util.get_current(), "logger.conf")) logger = logging.getLogger("root") return logger
接下来,我们就可以使用logger对象进行不同级别日志的写入了,看下代码:
def info(msg): _instance().info(msg) def warning(msg): _instance().warning(msg) def debug(msg): _instance().debug(msg) def error(msg): _instance().error(msg) def exception(msg): _instance().exception(msg) def critical(msg): _instance().critical(msg)
So Easy,你应该已经发现了,在我们新建logger对象时,使用到了一个conf文件,再来看下conf的写法吧
#logger.conf ############################################### [loggers] keys=root [logger_root] level = INFO handlers = consoleHandler, fileHandler ############################################### [handlers] keys = consoleHandler, fileHandler [handler_consoleHandler] class = StreamHandler level = DEBUG formatter = form01 args=(sys.stderr,) [handler_fileHandler] class = handlers.RotatingFileHandler level = WARNING formatter = form01 args=('myserver.log', 'a', 10 * 1024 * 1024, 5) ############################################### [formatters] keys=form01 [formatter_form01] format=%(asctime)s %(filename)s[line:%(lineno)d] %(levelname)s %(message)s datefmt=%a, %d %b %Y %H:%M:%S
从上往下,首先配置logger的名称为root,在logger对象获取时有用到这个名字哦;
接着定义root的处理级别及写入方式,日志级别顺序为info debug warning exception error critical,示例中定义了两种写入方式consoleHandler、fileHandler;
handlers下,定义了写入方式详细的类,写入级别,写入信息格式,写入时参数
ok,Python写日志的方式就完成了~·~
欢迎关注“搜狗测试”公众号,每天一篇测试相关的文章与您分享,共同讨论软件测试的技术与发展
时间: 2024-10-12 08:59:45