IT数码 购物 网址 头条 软件 日历 阅读 图书馆
TxT小说阅读器
↓语音阅读,小说下载,古典文学↓
图片批量下载器
↓批量下载图片,美女图库↓
图片自动播放器
↓图片自动播放器↓
一键清除垃圾
↓轻轻一点,清除系统垃圾↓
开发: C++知识库 Java知识库 JavaScript Python PHP知识库 人工智能 区块链 大数据 移动开发 嵌入式 开发工具 数据结构与算法 开发测试 游戏开发 网络协议 系统运维
教程: HTML教程 CSS教程 JavaScript教程 Go语言教程 JQuery教程 VUE教程 VUE3教程 Bootstrap教程 SQL数据库教程 C语言教程 C++教程 Java教程 Python教程 Python3教程 C#教程
数码: 电脑 笔记本 显卡 显示器 固态硬盘 硬盘 耳机 手机 iphone vivo oppo 小米 华为 单反 装机 图拉丁
 
   -> Python知识库 -> Python 日志打印库 lk-logger: 打印源码位置和变量名 -> 正文阅读

[Python知识库]Python 日志打印库 lk-logger: 打印源码位置和变量名

项目地址: https://github.com/likianta/lk-logger

lk-logger 是一个简单易用的日志打印工具, 可作为 print 的替代品.

lk-logger 的用法非常简单, 在顶部加入两行代码:

import lk_logger
lk_logger.setup()

之后, 你的原项目中所有使用到 print(...) 的地方, 打印效果都会发生变化…

在这里插入图片描述


lk-logger 相比于 print 的优点:

  1. 显示调用者在源码的文件位置和行号.

    在 pycharm 控制台中, 点击可跳转到源代码位置:

    在这里插入图片描述

  2. 显示被打印对象的变量名. 例如, print(name) 会在控制台同时显示变量名 “name” 和它的值: name = xxx...

  3. 写法更加简单:

    普通的打印:

    a, b = 1, 2
    print('a = {}, b = {}, a + b = {}'.format(a, b, a + b))
    

    lk-logger 打印:

    a, b = 1, 2
    print(a, b, a + b)
    

    在这里插入图片描述

  4. 代码高亮

    在这里插入图片描述

安装

通过 pip 安装:

pip install lk-logger

最新版本为 5.0.0 及以上.

请注意: lk-logger 需要 python 3.8 及以上解释器.

基本用法

得益于 lk-logger 非侵入式的设计, 只需要极小的修改就能产生立竿见影的效果.

在您的项目的入口脚本中, 加入下面两行代码:

import lk_logger
lk_logger.setup()

不需要其他的修改, 按照平时使用 print 的习惯去使用即可!

以上就是 lk-logger 几乎全部的用法.

作为补充, 下面列出的是 print 以外的功能:

启用 “打印变量名” 的功能

import lk_logger
lk_logger.setup(show_varnames=True)

效果前后对比 (注意红线框出的位置):

在这里插入图片描述

在这里插入图片描述

请注意: 启用该功能将对性能产生一些影响.

开启, 关闭, 恢复标准 print 方法

import lk_logger

lk_logger.setup()  # 开启 lk-logger
print('hello world')  # -> xxx.py:4  >>  module  >>  hello world

...

lk_logger.unload()  # 卸载 lk-logger 的特色功能, 将恢复为 python 标准打印
print('hello world')  # -> hello world

...

lk_logger.disable()  # 关闭打印
print('hello world')  # (在控制台没有打印输出)

...

lk_logger.enable()  # 恢复打印
print('hello world')  # -> xxx.py:19  >>  module  >>  hello world

...

setup quiet 参数

在默认情况下, lk_logger.setup() 在被调用时会自动产生一条 “欢迎” 信息:

在这里插入图片描述

如果您正在开发基础支持类库, 并不希望其他调用者看到这条消息 (考虑到这会给其他人带来疑惑和困扰). 可以添加一个 quiet 参数:

lk_logger.setup(quiet=True)

在一些第三方库中 (例如 lk-utils, pyportable-installer 等), 你会在它们的 __init__.py 文件中看到这种用法.

此外, lk_logger.setup() 允许被多次调用, 但最多只会产生一次欢迎信息.

进阶用法

一般来说, 上述用法已经足以应对绝大多数情景.

当我们需要进一步控制打印的风格时, lk-logger 提供了 “标记语法” 来实现.

提示: 标记语法同样采用了非侵入式的设计原则, 使用标记语法并不会破坏 print 的使用习惯.

标记语法通过在 print 的首位或末位参数使用一个字符串来表示. 该字符串的特征如下:

  • 位于第一个或最后一个参数位置
  • 以冒号开头
  • 冒号后跟多个字母, 每个字母各代表一个功能. 例如 ‘:i’, ‘:r’, ‘:vpd’, …
  • 每个字母后面, 可以跟一个可选的数字. 例如 ‘:i0’, ‘:p2v4’, …

示例:

print(':i', 'monday')
print(':i', 'tuesday')
print(':i', 'wednesday')

在这里插入图片描述

示例 2:

print('this is a divider', ':d')

print('this is a TRACE message', ':v0')
print('this is a DEBUG message', ':v1')
print('this is a INFO  message', ':v2')
print('this is a WARN  message', ':v3')
print('this is a ERROR message', ':v4')
print('this is a FATAL message', ':v5')

在这里插入图片描述

所有可用的标记如下列表:

标记全称说明
:ddivider line分割线
:iindex序号
:llong / loose format“宽松结构” (多行展开)
:pparent layer显示父级调用者的源码位置
:rrich format富文本格式
:sshort / single line format简略格式1
:ttimestamp时间戳2
:vverbosity / log level打印级别

标记数值说明:

标记缺省值3说明备注
:d0使用默认的分割线风格
:d1+使用用户定义的分割线风格暂不支持
-
:i0重置计数
:i1递增计数 (1, 2, 3, …)
:i2递增计数 (01, 02, 03, …)暂不支持
:i3递增计数 (001, 002, 003, …)暂不支持
-
:l0让 lk-logger 决定如何展开为多行
:l1强制展开全部节点暂不支持
-
:p0显示自身 (指 print 代码) 所在的源码位置
:p1显示父级调用者所在的源码位置
:p2显示父级的父级调用者所在的源码位置
:p3显示父级的父级的父级调用者所在的源码位置
:p4+同上, 以此类推请谨慎使用 :p2+, 如果该调用者不存在则会报错
-
:v0TRACE 级别的打印 (默认色)不同的级别会使用不同的高亮颜色
:v1DEBUG 级别的打印 (灰色)
:v2INFO 级别的打印 (蓝色)
:v3WARN 级别的打印 (黄色)
:v4ERROR 级别的打印 (红色)
:v5FATAL 级别的打印 (红底白字)
:v6+用户自定义级别暂不支持

  1. 当前版本暂未实现! ??

  2. 当前版本暂未实现! ??

  3. 缺省值表示数字被省略时所表示的默认值. ??

  Python知识库 最新文章
Python中String模块
【Python】 14-CVS文件操作
python的panda库读写文件
使用Nordic的nrf52840实现蓝牙DFU过程
【Python学习记录】numpy数组用法整理
Python学习笔记
python字符串和列表
python如何从txt文件中解析出有效的数据
Python编程从入门到实践自学/3.1-3.2
python变量
上一篇文章      下一篇文章      查看所有文章
加:2022-04-24 09:24:12  更:2022-04-24 09:24:59 
 
开发: C++知识库 Java知识库 JavaScript Python PHP知识库 人工智能 区块链 大数据 移动开发 嵌入式 开发工具 数据结构与算法 开发测试 游戏开发 网络协议 系统运维
教程: HTML教程 CSS教程 JavaScript教程 Go语言教程 JQuery教程 VUE教程 VUE3教程 Bootstrap教程 SQL数据库教程 C语言教程 C++教程 Java教程 Python教程 Python3教程 C#教程
数码: 电脑 笔记本 显卡 显示器 固态硬盘 硬盘 耳机 手机 iphone vivo oppo 小米 华为 单反 装机 图拉丁

360图书馆 购物 三丰科技 阅读网 日历 万年历 2024年11日历 -2024/11/15 18:04:53-

图片自动播放器
↓图片自动播放器↓
TxT小说阅读器
↓语音阅读,小说下载,古典文学↓
一键清除垃圾
↓轻轻一点,清除系统垃圾↓
图片批量下载器
↓批量下载图片,美女图库↓
  网站联系: qq:121756557 email:121756557@qq.com  IT数码