找回密码
 立即注册
首页 业界区 业界 Logging日志

Logging日志

乳杂丫 2025-6-5 19:48:17
日志处理logging

一、日志输出


  • 日志默认的输出等级为:waring级别及以上的等级
  • 修改日志的默认输出等级通过logging.basicConfig(level='INFO')
  • 记录日志打印时间:logging.basicConfig(format=console_fmt)
    console_fmt = "%(name)s--->%(levelname)s--->%(asctime)s--->%(message)s--->%(lineno)d"

    • %(name)s    名字
    • %(levelname)s   日志级别
    • %(asctime)s        打印时间,年月日十分秒
    • %(message)s      日志中的信息
    • %(lineno)d           报错日志在代码中第几行

  • logging.basicConfig(format=console_fmt,level='INFO')
  1. # -*- coding: utf-8 -*-
  2. import logging
  3. logger = logging.getLogger(__name__)
  4. console_fmt = "%(name)s--->%(levelname)s--->%(asctime)s--->%(message)s--->%(lineno)d"
  5. logging.basicConfig(level="INFO",format=console_fmt)
  6. logging.debug("debug")
  7. logging.info("info")
  8. logging.warning("warning")
  9. logging.error("error")
  10. logging.critical("critical")
复制代码
二、日志输出到控制台
  1. # Time:2022 2022/3/1 17:20
  2. # Author: Jasmay
  3. # -*- coding: utf-8 -*-
  4. import logging
  5. # 第一步:创建日志器对象,默认等级为warning
  6. logger = logging.getLogger("这是我的一个小测试日志")
  7. logging.basicConfig(level="INFO")
  8. # 第二步:创建控制台日志处理器
  9. console_handler = logging.StreamHandler()
  10. # 第三步:设置控制台日志的输出级别,需要日志器也设置日志级别为info;----根据两个地方的等级进行对比,取日志器的级别
  11. console_handler.setLevel(level="WARNING")
  12. # 第四步:设置控制台日志的输出格式
  13. console_fmt = "%(name)s--->%(asctime)s--->%(message)s--->%(lineno)d"
  14. fmt1 = logging.Formatter(fmt=console_fmt)
  15. console_handler.setFormatter(fmt=fmt1)
  16. # 第五步:将控制台日志器,添加进日志器对象中
  17. logger.addHandler(console_handler)
  18. logger.debug("---debug")
  19. logger.info("---info")
  20. logger.warning("---warning")
  21. logger.error("---error")
  22. logger.critical("---critical")
复制代码
三、输出到日志文件
  1. # Time:2022 2022/3/1 17:44
  2. # Author: Jasmay
  3. # -*- coding: utf-8 -*-
  4. # Time:2022 2022/3/1 17:20
  5. # Author: Jasmay
  6. # -*- coding: utf-8 -*-
  7. import logging
  8. # 第一步:创建日志器对象,默认等级为warning
  9. logger = logging.getLogger("这是我的一个小测试日志")
  10. logging.basicConfig(level="INFO")
  11. # 第二步:创建文件日志处理器
  12. file_handler = logging.FileHandler("./log.txt",mode="a",encoding="utf-8")
  13. # 第三步:设置控制台日志的输出级别,需要日志器也设置日志级别为info;----根据两个地方的等级进行对比,取日志器的级别
  14. # 第四步:设置控制台日志的输出格式
  15. file_fmt = "%(name)s--->%(levelname)s--->%(asctime)s--->%(message)s"
  16. fmt2 = logging.Formatter(fmt = file_fmt)
  17. file_handler.setFormatter(fmt = fmt2)
  18. # 第五步:将文件日志器,添加进日志器对象中
  19. logger.addHandler(file_handler)
  20. logger.debug("---debug")
  21. logger.info("---info")
  22. logger.warning("---warning")
  23. logger.error("---error")
  24. logger.critical("---critical")
复制代码
四、同时输出到控制台+文件
  1. # Time:2022 2022/3/1 17:20
  2. # Author: Jasmay
  3. # -*- coding: utf-8 -*-
  4. import logging
  5. # 第一步:创建日志器对象,默认等级为warning
  6. logger = logging.getLogger("这是我的一个小测试日志")
  7. logging.basicConfig(level="INFO")
  8. # 第二步:创建控制台日志处理器+文件日志处理器
  9. console_handler = logging.StreamHandler()
  10. file_handler = logging.FileHandler("./log.txt",mode="a",encoding="utf-8")
  11. # 第三步:设置控制台日志的输出级别,需要日志器也设置日志级别为info;----根据两个地方的等级进行对比,取日志器的级别
  12. console_handler.setLevel(level="WARNING")
  13. # 第四步:设置控制台日志和文件日志的输出格式
  14. console_fmt = "%(name)s--->%(levelname)s--->%(asctime)s--->%(message)s--->%(lineno)d"
  15. file_fmt = "%(lineno)d--->%(name)s--->%(levelname)s--->%(asctime)s--->%(message)s"
  16. fmt1 = logging.Formatter(fmt = console_fmt)
  17. fmt2 = logging.Formatter(fmt = file_fmt)
  18. console_handler.setFormatter(fmt = fmt1)
  19. file_handler.setFormatter(fmt = fmt2)
  20. # 第五步:将控制台日志器、文件日志器,添加进日志器对象中
  21. logger.addHandler(console_handler)
  22. logger.addHandler(file_handler)
  23. logger.debug("---debug")
  24. logger.info("---info")
  25. logger.warning("---warning")
  26. logger.error("---error")
  27. logger.critical("---critical")
复制代码
五、日志类:将日志输出到控制台+文件
  1. # Time:2022 2022/3/2 10:21
  2. # Author: Jasmay
  3. # -*- coding: utf-8 -*-
  4. import logging
  5. class Logger():
  6.     def __init__(self,level="DEBUG"):
  7.         # 创建日志器对象
  8.         self.logger = logging.getLogger(__name__)
  9.         self.logger.setLevel(level)
  10.     def console_handler(self,level="DEBUG"):
  11.         # 创建控制台的日志处理器
  12.         console_handler = logging.StreamHandler()
  13.         console_handler.setLevel(level)
  14.         # 处理器添加输出格式
  15.         console_handler.setFormatter(self.get_formatter()[0])
  16.         # 返回控制器
  17.         return console_handler
  18.     def file_handler(self, level="DEBUG"):
  19.         # 创建文件的日志处理器
  20.         file_handler = logging.FileHandler("./log.txt",mode="a",encoding="utf-8")
  21.         file_handler.setLevel(level)
  22.         # 处理器添加输出格式
  23.         file_handler.setFormatter(self.get_formatter()[1])
  24.         # 返回控制器
  25.         return file_handler
  26.     def get_formatter(self):
  27.         """格式器"""
  28.         console_fmt = logging.Formatter(fmt="%(name)s--->%(levelname)s--->%(asctime)s--->%(message)s")
  29.         file_fmt = logging.Formatter(fmt="%(lineno)d--->%(name)s--->%(levelname)s--->%(asctime)s--->%(message)s")
  30.         # 返回的是一个元组
  31.         return console_fmt,file_fmt
  32.     def get_log(self):
  33.         # 日志器中添加控制台处理器
  34.         self.logger.addHandler(self.console_handler())
  35.         # 日志器中添加文件处理器
  36.         self.logger.addHandler(self.file_handler())
  37.         # 返回日志实例对象
  38.         return self.logger
复制代码
六、调用日志类:将日志输出到控制台+文件
  1. # Time:2022 2022/3/2 10:45
  2. # Author: Jasmay
  3. # -*- coding: utf-8 -*-
  4. from common.logone import Logger
  5. class TestLog():
  6.     def __init__(self):
  7.         log = Logger()
  8.         self.logger = log.get_log()
  9.     def test_baili_01(self):
  10.         self.logger.info("开始执行")
  11.         self.logger.warning("结束执行")
  12. # 实例化
  13. test  = TestLog()
  14. # 调用类中的方法
  15. test.test_baili_01()
复制代码
来源:程序园用户自行投稿发布,如果侵权,请联系站长删除
免责声明:如果侵犯了您的权益,请联系站长,我们会及时删除侵权内容,谢谢合作!

相关推荐

您需要登录后才可以回帖 登录 | 立即注册