python logging模块的使用详解


Posted in Python onOctober 23, 2020

logging日志模块:是用来记录日志的模块,一般记录用户在软件中的操作

使用方法:模板直接拿来用,手动修改

# logging的配置信息(模板)
import os
import logging.config


# 定义三种日志输出格式 开始(模板,不用配置,直接拿来用)
standard_format = '[%(asctime)s][%(threadName)s:%(thread)d][task_id:%(name)s][%(filename)s:%(lineno)d]' \
         '[%(levelname)s][%(message)s]' # 其中name为get_logger中指定的名字
simple_format = '[%(levelname)s][%(asctime)s][%(filename)s:%(lineno)d]%(message)s'
id_simple_format = '[%(levelname)s][%(asctime)s] %(message)s'
# 定义日志输出格式 结束


# (*****)注意1: log文件的目录(手动修改)
BASE_PATH = os.path.dirname(os.path.dirname(__file__))  # 获取项目路径
logfile_dir = os.path.join(BASE_PATH, 'log')  # 存放log文件的目录
# (*****)注意2: log文件名(手动修改)
logfile_name = 'user.log'


# 如果不存在定义的日志目录就创建一个
if not os.path.isdir(logfile_dir):
  os.mkdir(logfile_dir)
# log文件的全路径
logfile_path = os.path.join(logfile_dir, logfile_name)


# (*****)注意3: log配置字典(模板,不用配置,直接拿来用)
LOGGING_DIC = {
  'version': 1,
  'disable_existing_loggers': False,
  'formatters': {
    'standard': {
      'format': standard_format
    },
    'simple': {
      'format': simple_format
    },
  },
  'filters': {},
  'handlers': {
    # 打印到终端的日志
    'console': {
      'level': 'DEBUG',
      'class': 'logging.StreamHandler', # 打印到屏幕
      'formatter': 'simple'
    },
    # 打印到文件的日志,收集info及以上的日志
    'default': {
      'level': 'DEBUG',
      'class': 'logging.handlers.RotatingFileHandler', # 保存到文件
      'formatter': 'standard',
      'filename': logfile_path, # 日志文件
      'maxBytes': 1024 * 1024 * 5, # 日志大小 5M
      'backupCount': 5,
      'encoding': 'utf-8', # 日志文件的编码,再也不用担心中文log乱码了
    },
  },
  'loggers': {
    # logging.getLogger(__name__)拿到的logger配置
    '': {
      'handlers': ['default', 'console'], # 这里把上面定义的两个handler都加上,即log数据既写入文件又打印到屏幕
      'level': 'DEBUG',
      'propagate': True, # 向上(更高level的logger)传递
    },
  },
}


# (*****)注意4:定义日志函数,传入的参数可以是日志信息中的"用户id"或者"用户名字",也可以是某一类型的统称
def get_logger(user_type):
  # 1.加载log配置字典到logging模块的配置中
  logging.config.dictConfig(LOGGING_DIC)
  # 2.获取日志对象
  # logger = logging.getLogger('user')
  # logger = logging.getLogger('bank')
  # logger = logging.getLogger('shop')
  logger = logging.getLogger(user_type)
  return logger

# 调用函数,记录日志# 通过logger日志对象,调用内部的日志打印
logger = get_logger('user')  # 这里的参数为日志信息中的"用户id"或者"用户名字"
# 调用获取日志函数的日志对象
# logger.debug('学习不要浮躁,一步一个脚印!')
logger.info('学习不要浮躁,一步一个脚印!')  # debug和info均为日志等级,用info即可,info后面传入的内容就是需要记录日志的内容

注意:前三个注意点可以根据情况修改设置,第四个注意点是log的配置字典,无需修改,只需留意即可。

执行结果:

[INFO][2020-10-22 20:23:07,405][04 logging模块.py:100]学习不要浮躁,一步一个脚印!

logging模块应用输出示例:

python logging模块的使用详解

python logging模块的使用详解

以上就是python logging模块的使用详解的详细内容,更多关于python logging模块的资料请关注三水点靠木其它相关文章!

Python 相关文章推荐
python实现单链表中删除倒数第K个节点的方法
Sep 28 Python
python 内置模块详解
Jan 01 Python
python实现五子棋小程序
Jun 18 Python
python读取tif图片时保留其16bit的编码格式实例
Jan 13 Python
python 将dicom图片转换成jpg图片的实例
Jan 13 Python
django 解决model中类写不到数据库中,数据库无此字段的问题
May 20 Python
基于python实现删除指定文件类型
Jul 21 Python
如何用python免费看美剧
Aug 11 Python
Python操作Word批量生成合同的实现示例
Aug 28 Python
一篇文章教你用python画动态爱心表白
Nov 22 Python
python实现登录与注册系统
Nov 30 Python
从np.random.normal()到正态分布的拟合操作
Jun 02 Python
Pycharm自动添加文件头注释和函数注释参数的方法
Oct 23 #Python
Python中免验证跳转到内容页的实例代码
Oct 23 #Python
python对 MySQL 数据库进行增删改查的脚本
Oct 22 #Python
Python提取视频中图片的示例(按帧、按秒)
Oct 22 #Python
详解python模块pychartdir安装及导入问题
Oct 22 #Python
Python实现自动装机功能案例分析
Oct 22 #Python
Python reversed反转序列并生成可迭代对象
Oct 22 #Python
You might like
一个图形显示IP的PHP程序代码
2007/10/19 PHP
php在window iis的莫名问题的测试方法
2013/05/14 PHP
使用php判断服务器是否支持Gzip压缩功能
2013/09/24 PHP
php定界符
2014/06/19 PHP
浅谈使用 PHP 进行手机 APP 开发(API 接口开发)
2014/08/11 PHP
php数组比较实现查找连续数的方法
2015/07/29 PHP
location.href 在IE6中不跳转的解决方法与推荐使用代码
2010/07/08 Javascript
IFrame跨域高度自适应实现代码
2012/08/16 Javascript
jQuery版本升级踩坑大全
2016/01/12 Javascript
基于jQuery实现Ajax验证用户名是否存在实例
2016/03/30 Javascript
JavaScript中获取时间的函数集
2016/08/16 Javascript
vue里的data要用return返回的原因浅析
2019/05/28 Javascript
微信小程序实现点击空白隐藏的方法示例
2019/08/13 Javascript
JS操作字符串转数字的常见方法示例
2019/10/29 Javascript
简单了解JavaScript弹窗实现代码
2020/05/07 Javascript
浅谈vue 二级路由嵌套和二级路由高亮问题
2020/08/06 Javascript
Python中使用tarfile压缩、解压tar归档文件示例
2015/04/05 Python
Python中DJANGO简单测试实例
2015/05/11 Python
python下载图片实现方法(超简单)
2017/07/21 Python
Python进阶之自定义对象实现切片功能
2019/01/07 Python
使用Python计算玩彩票赢钱概率
2019/06/26 Python
python将时分秒转换成秒的实例
2019/12/07 Python
tensorflow之变量初始化(tf.Variable)使用详解
2020/02/06 Python
python实现翻译word表格小程序
2020/02/27 Python
基于HTML5实现类似微信手机摇一摇功能(计算摇动次数)
2017/07/24 HTML / CSS
英国网上购买肉类网站:Great British Meat
2018/10/17 全球购物
UNIX文件名称有什么规定
2013/03/25 面试题
室内设计专业个人的自我评价
2013/12/18 职场文书
文秘档案管理岗位职责
2014/03/06 职场文书
理想演讲稿范文
2014/05/21 职场文书
好好学习保证书
2015/02/26 职场文书
工程技术员岗位职责
2015/04/11 职场文书
中标通知书
2015/04/17 职场文书
解决pycharm下载库时出现Failed to install package的问题
2021/09/04 Python
Smart 2 车辆代号 HC11 全新谍照曝光
2022/04/21 数码科技
详解Anyscript开发指南绕过typescript类型检查
2022/09/23 Javascript