前言

是Python内置的标准模块,主要用于输出运行日志

基本语法


import logging # # logging模块默认设置的日志级别是warning,而debug和info的级别是低于warning的,所以不会打印这两种日志信息
# logging.basicConfig(level=logging.DEBUG)
# logging.debug("debug信息")
# logging.info("info信息")
# logging.warning("warning信息")
# logging.error("error信息")
# logging.critical("critical信息") # 创建一个logger对象,并且设置默认的日志级别
logger = logging.getLogger()
logger.setLevel(logging.DEBUG) # 创建日志格式对象
format = logging.Formatter('%(asctime)s - %(filename)s[line:%(lineno)d] - %(levelname)s: %(message)s') #创建FileHandler对象---输出文件日志
fp = logging.FileHandler('test.log','a',encoding='utf-8') # fp.setLevel(logging.DEBUG)
fp.setFormatter(format)
logger.addHandler(fp) # 创建流对象----控制台输出日志
sp = logging.StreamHandler()
sp.setFormatter(format)
logger.addHandler(sp)
logger.setLevel(logging.DEBUG) logger.info('文件记录日志')

封装log实现


import os
import logging
import time
from common.configutils import config_utils current_path = os.path.dirname(__file__)
log_output_path = os.path.join( current_path,'..', config_utils.LOG_PATH ) class LogUtils:
def __init__(self,log_path=log_output_path):
# 创建一个logger对象,并且设置默认的日志级别(必须设置默认日志级别)
log_level = int(config_utils.LOG_LEVER)
self.logger = logging.getLogger() #创建日志对象
self.logger.setLevel(log_level)
self.log_name = os.path.join(log_path, 'ApiTest_%s.log' % time.strftime('%Y_%m_%d')) # 创建日志格式对象
format = logging.Formatter('%(asctime)s - %(filename)s[line:%(lineno)d] - %(levelname)s: %(message)s') #创建日志格式对象
# 创建FileHandler对象
fp = logging.FileHandler(self.log_name, 'a', encoding='utf-8')
fp.setLevel(log_level)
fp.setFormatter(format)
self.logger.addHandler(fp) # 创建流对象
sp = logging.StreamHandler()
sp.setFormatter(format)
self.logger.addHandler(sp)
self.logger.setLevel(log_level) sp.close()
fp.close() def get_log(self):
return self.logger if __name__ == '__main__':
logger = LogUtils().get_log()
logger.debug("debug测试写日志功能")

最新文章

  1. Eclipse中Python开发环境搭建
  2. 关于bootstrap的一些运用
  3. js post提交
  4. Sqli-LABS通关笔录-10
  5. 【SQL 数据库】将一张数据表信息复制到另一张数据表
  6. flexbox布局的兼容性
  7. nginx 完全关闭 access_log
  8. Nginx【第一篇】安装
  9. Tcpdump命令行 与 GUI Wireshark
  10. 是男人就下100层【第四层】——Crazy贪吃蛇(1)
  11. VMware安装ubuntu,通过/mnt/hgfs 挂载共享Windows系统文件夹
  12. vue 集成 axios 发送post请求 payload导致后台无法接收到数据问题
  13. java中读取资源文件的方法
  14. .NET应用加载容器Glue4Net
  15. OracleAES加密
  16. fopen_s遇到的一个问题
  17. Linux环境变量具体内容介绍
  18. LostRoutes项目日志——敌人精灵Enemy解析
  19. 安装VMware,Linux
  20. MVC之AJAX异步提交表单

热门文章

  1. 《剑指offer》面试题44. 数字序列中某一位的数字
  2. leetcode 55. 跳跃游戏 及 45. 跳跃游戏 II
  3. 【C++】类-多态
  4. 『德不孤』Pytest框架 — 3、Pytest的基础说明
  5. 话说C#程序员人手一个ORM
  6. Docker 与 K8S学习笔记(十八)—— Pod的使用
  7. golang中文件和路径用法
  8. 【转载】Systemd 入门教程:实战篇
  9. java基础编程练习题
  10. 2022.02.04 Day1