一、日志的输出:
1、日志默认的输出等级为:warning级别及以上的 2、想修改日志的默认输出等级?通过logging.basicConfig(level=“INFO”)----info需要用大写 3、想知道日志是什么时候打印出来的,以及其他参数?通过logging.basicConfig(format=console_fmt) 4、如果要同时添加这2个参数,需要写在一行代码中,logging.basicConfig(level=“INFO”,format=console_fmt)
- %(name)s:名字
- %(levelname)s:日志级别
- %(asctime)s:打印时间,年月日时分秒
- %(message)s:日志中的信息
- %(lineno)d:报错日志在代码中第几行
import logging
logger = logging.getLogger(__name__)
console_fmt = "%(name)s--->%(levelname)s--->%(asctime)s--->%(message)s--->%(lineno)d"
logging.basicConfig(level="INFO",format=console_fmt)
logging.debug("debug")
logging.info("info")
logging.warning("warning")
logging.error("error")
logging.critical("critical")
二、日志输出到控制台
import logging
logger = logging.getLogger("这是我的一个小测试日志")
logging.basicConfig(level="INFO")
console_handler = logging.StreamHandler()
console_handler.setLevel(level="WARNING")
console_fmt = "%(name)s--->%(asctime)s--->%(message)s--->%(lineno)d"
fmt1 = logging.Formatter(fmt=console_fmt)
console_handler.setFormatter(fmt=fmt1)
logger.addHandler(console_handler)
logger.debug("---debug")
logger.info("---info")
logger.warning("---warning")
logger.error("---error")
logger.critical("---critical")
三、日志输出到文件
import logging
logger = logging.getLogger("这是我的一个小测试日志")
logging.basicConfig(level="INFO")
file_handler = logging.FileHandler("./log.txt",mode="a",encoding="utf-8")
file_fmt = "%(name)s--->%(levelname)s--->%(asctime)s--->%(message)s"
fmt2 = logging.Formatter(fmt = file_fmt)
file_handler.setFormatter(fmt = fmt2)
logger.addHandler(file_handler)
logger.debug("---debug")
logger.info("---info")
logger.warning("---warning")
logger.error("---error")
logger.critical("---critical")
四、同时将日志输出到控制台+文件
import logging
logger = logging.getLogger("这是我的一个小测试日志")
logging.basicConfig(level="INFO")
console_handler = logging.StreamHandler()
file_handler = logging.FileHandler("./log.txt",mode="a",encoding="utf-8")
console_handler.setLevel(level="WARNING")
console_fmt = "%(name)s--->%(levelname)s--->%(asctime)s--->%(message)s--->%(lineno)d"
file_fmt = "%(lineno)d--->%(name)s--->%(levelname)s--->%(asctime)s--->%(message)s"
fmt1 = logging.Formatter(fmt = console_fmt)
fmt2 = logging.Formatter(fmt = file_fmt)
console_handler.setFormatter(fmt = fmt1)
file_handler.setFormatter(fmt = fmt2)
logger.addHandler(console_handler)
logger.addHandler(file_handler)
logger.debug("---debug")
logger.info("---info")
logger.warning("---warning")
logger.error("---error")
logger.critical("---critical")
五、日志类:将日志输出到控制台+文件
import logging
class Logger():
def __init__(self,level="DEBUG"):
self.logger = logging.getLogger(__name__)
self.logger.setLevel(level)
def console_handler(self,level="DEBUG"):
console_handler = logging.StreamHandler()
console_handler.setLevel(level)
console_handler.setFormatter(self.get_formatter()[0])
return console_handler
def file_handler(self, level="DEBUG"):
file_handler = logging.FileHandler("./log.txt",mode="a",encoding="utf-8")
file_handler.setLevel(level)
file_handler.setFormatter(self.get_formatter()[1])
return file_handler
def get_formatter(self):
"""格式器"""
console_fmt = logging.Formatter(fmt="%(name)s--->%(levelname)s--->%(asctime)s--->%(message)s")
file_fmt = logging.Formatter(fmt="%(lineno)d--->%(name)s--->%(levelname)s--->%(asctime)s--->%(message)s")
return console_fmt,file_fmt
def get_log(self):
self.logger.addHandler(self.console_handler())
self.logger.addHandler(self.file_handler())
return self.logger
六、调用日志类:将日志输出到控制台+文件
from common.logone import Logger
class TestLog():
def __init__(self):
log = Logger()
self.logger = log.get_log()
def test_baili_01(self):
self.logger.info("开始执行")
self.logger.warning("结束执行")
test = TestLog()
test.test_baili_01()
|