# !/user/bin/python# -*- coding: utf-8 -*-'''subprocess : 需要在linux平台上测试 shelllogging'''import logging# 将日志输出在文件里# logging.basicConfig(filename="app.log", level=logging.DEBUG)logging.basicConfig(filename="app.log", level=logging.WARNING, format='%(asctime)s %(levelname)s %(filename)s:%(lineno)d - %(message)s', datefmt='%m/%d/%Y %I:%M:%S %p') # 在日志上加上时间. %p代表pm. TODO 为什么没打出行数?logging.debug("test debug")logging.info("test info")logging.error("test error")logging.warning("User [alex] attempted wrong password more than 3 times")# 同时将日志打印在屏幕上并输出在文件里# step 1, create loggerlogger = logging.getLogger("TEST-LOG")logger.setLevel(logging.DEBUG)# step2, create console handler and set level to debugch=logging.StreamHandler()ch.setLevel(logging.DEBUG)# step3, create file handler and set level to warningfh = logging.FileHandler("process.log")fh.setLevel(logging.ERROR)# step3, define formatfh_formatter = logging.Formatter('%(asctime)s %(levelname)s %(filename)s:%(lineno)d - %(message)s')ch_formatter = logging.Formatter('%(asctime)s - %(name)s - %(levelname)s - %(message)s')fh.setFormatter(fh_formatter)ch.setFormatter(ch_formatter)# step4, connect handlers to loggerlogger.addHandler(fh)logger.addHandler(ch)logger.warning("ddddd")
Level | When it’s used |
---|---|
DEBUG | Detailed information, typically of interest only when diagnosing problems. |
INFO | Confirmation that things are working as expected. |
WARNING | An indication that something unexpected happened, or indicative of some problem in the near future (e.g. ‘disk space low’). The software is still working as expected. |
ERROR | Due to a more serious problem, the software has not been able to perform some function. |
CRITICAL | A serious error, indicating that the program itself may be unable to continue running. |