logging模块学习

2023-10-27

logging 基础知识:

logging的基础知识:
"""
logging.basicConfig()参数介绍
filename:创建一个 FileHandler,使用指定的文件名,而不是使用 StreamHandler。
filemode:如果指明了文件名,指明打开文件的模式(如果没有指明 filemode,默认为 ‘a’)。
format;handler 使用指明的格式化字符串。
datefmt:handler 使用指明的格式化字符串。
level:指明根 logger 的级别。
stream:使用指明的流来初始化 StreamHandler。该参数与 ‘filename’ 不兼容,如果两个都有,‘stream’ 被忽略。

关于日志模块
#关于模块的使用
#日志的等级划分
debug :调式信息,进行程序诊断时候使用
info:普通信息,确认程序按照预期进行
warning:警告信息
error:错误信息
critical:危险错误,严重的错误信息

formater格式
%(asctime)s    日志发生的时间
%(levelname)s  日志的等级
%(message)s  日志文本内容
%(name)s  日志器名称
%(pathname)s  调用日志记录函数文件全路径
%(filename)s  调用日志记录函数的文件
%(funcName)s  调用日志记录函数名称
%(lineno)d  日志函数的代码所在的行号
%(process)d:打印进程 ID
%(threadName)s:打印线程名称
"""

案例1:关于format 和logging的学习

#logging formater 格式学习 以及logging等级
import logging
# # 设置输出的格式
LOG_FORMAT = "时间:%(asctime)s - 日志等级:%(levelname)s - 日志信息:%(message)s"
# 对logger进行配置——日志等级和输出格式 大于该等级的日志才会输出
logging.basicConfig(level=logging.WARNING, format=LOG_FORMAT)
 #logging.level(message)创建一条level级别的日志
logging.debug("This is a debug log")
logging.info("This is a info log")
logging.warning("This is a warning log")
logging.error("This is a error log")
logging.critical("This is a critical log")

案例2:日志保存到文件

import logging
# # 设置输出的格式
LOG_FORMAT = "时间:%(asctime)s - 日志等级:%(levelname)s - 日志信息:%(message)s"
# 对logger进行配置——日志等级和输出格式 大于该等级的日志才会输出
logging.basicConfig(level=logging.WARNING, format=LOG_FORMAT,filename='save.log')
 #logging.level(message)创建一条level级别的日志
logging.debug("This is a debug log")
logging.info("This is a info log")
logging.warning("This is a warning log")
logging.error("This is a error log")
logging.critical("This is a critical log")

#案例3 多模块的日志信息打印
创建一个logging.py 文件

import logging
import my_log
def main():
    logging.basicConfig(filename="666myfile.log", level=logging.DEBUG)
    logging.info("start")
    my_log.func()
    logging.info("end")
if __name__ == "__main__":
     main()

创建一个my_log.py文件

import logging

def func():
    for item in range(5):
        logging.info("printf message of log")

执行logging,py文件,在666myfile.log里面会出现如下结果

INFO:root:start
INFO:root:printf message of log
INFO:root:printf message of log
INFO:root:printf message of log
INFO:root:printf message of log
INFO:root:printf message of log
INFO:root:end

#logging 的四大组件
在这里插入图片描述

logger:日志器(记录器),提供日志接口,供应用代码使用。

handler:处理器,将日志记录发送到合适的目的地。

filter:过滤器,提供一种优雅的方式决定一个日志记录是否发送到handler。

formatter:格式化器,指定日志输出的格式。

案例3 打印堆栈信息

import requests
import logging

logging.basicConfig(
    filename='666cmdb.log',
    format='%(asctime)s - %(name)s - %(levelname)s - %(module)s: %(message)s',
    datefmt='%Y-%m-%d %H:%M:%S %p',
    level=logging.ERROR
)
try:
    requests.get("www.google.com")

except Exception as e:
    msg = str(e)#内部调用__str__方法
    logging.error(msg,exc_info=True)

本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

logging模块学习 的相关文章

随机推荐

  • 全国职业技能大赛云计算--高职组赛题卷①(容器云)

    全国职业技能大赛云计算 高职组赛题卷 容器云 第二场次题目 容器云平台部署与运维 任务1 Docker CE及私有仓库安装任务 5分 任务2 基于容器的web应用系统部署任务 15分 任务3 基于容器的持续集成部署任务 15分 任务4 Ku
  • python图像处理-形状提取和识别1(基于Hough的形状提取)

    python图像处理 形状提取和识别1 基于Hough的形状提取 本系列一个分为两大部分 一个是形状提取 一个是形状识别 1 形状提取中 基于Hough函数法进行直线提取和圆形提取 还有即基于颜色的形状提取 这里扩展了一个小程序 识别一张棋
  • vs2010复制粘贴

    void CjiantiebanDlg OnBnClickedButton1 TODO 在此添加控件通知处理程序代码 复制 CString str GetDlgItem IDC EDIT1 gt GetWindowText str HGLO
  • ubantu配置运行orb-slam2小记

    虚拟环境 参考这篇即可 sudo apt install virtualenv sudo apt install virtualenvwrapper 配置 mkdir HOME virtualenvs export WORKON HOME
  • MySQL数据库的命令行语句

    1 命令行连接数据库的方法 本地连接 必须管理员身份打开cmd窗口 win R输入cmd后 shift ctrl enter mysql u 用户名 p 用户名 CaoQian 密码 cq2227558856 2 显示所有数据库 图中是四个
  • 进制转换(二进制、八进制、十进制、十六进制之间的转换)

    进制转换 1 1 二进制与十进制之间的转换 十进制转二进制 方法为 十进制数除2取余法 即十进制数除2 余数为权位上的数 得到的商值继续除 直到商为0为止 二进制转十进制 方法为 把二进制数按权展开 相加即得十进制数 1 2 二进制与八进制
  • visibility 与 overflow

    display 3 属性描述 设置或获取对象是否及如何显示 版本变更 是 语法模板 display none inline block list item inline block table inline table table capt
  • 如何高效的进行版本管理,版本管理的方法

    如何进行高效的版本管理 版本管理的方法 云效Projects版本管理为不同的产品线 模块建立版本 对集成版本进行相关活动的管理 在Projects版本管理中规划发布内容 可以关联需求 任务 缺陷 立即体验 开启版本管理 项目管理员和项目拥有
  • 【Hyper-v 管理器虚拟机配置内网外网固定ip】

    1 Default Switch Hyper v默认虚拟网卡 无法设置固定ip Hyper V自带一个不能删除的Default Switch虚拟交换机 虚拟机使用该网络可以自动获取IP直接上网 但这个网络的网关地址每次重启后都会改变 所以你
  • 原生Servlet与Spring Controller性能比较

    在实际项目工作 有同事提出 Java原生的Servlet性能 响应速度与并发数 要比封装过的Spring Controller高 基于这点 楼主用Apache的ab工具 对两个简单的应用做1000并发压力测试 查看两者的响应速度与并发数 平
  • 元旦过后

    今天是13号了 自从元旦过后 就一直没有做什么事情 觉得好空虚啊 一心只盼望着过年放假回家 哎 感觉熬日子啊 本来就觉得日子过得好快 却还不懂得珍惜 不能这样了哈 在回家之前先做点有用的事情吧 讲一个小故事吧 一天 有一个姑娘去买红薯 本来
  • 解决video标签播放m3u8格式视频失败问题

    前言 什么是m3u8 效果 效果地址 m3u8视频切换 效果图片 解决方法 采用video js插件 引入 引入videoJS插件样式文件 引入videoJS插件JS文件 引入videoJS插件播放m3u8格式视频的HLS功能 HTML代码
  • 定时检测接口是否正常飞书告警脚本

    第一版 支持多个接口地址 循环检测 定时每分钟执行一次脚本 告警效果 脚本 飞书机器人创建忽略跳过 各大协作平台大同小异拿出机器人hook地址 bin bash URL LIST https gatewaxxxxxxxxxxxxxxxxxx
  • 笔记本电脑键盘失灵一键修复_笔记本部分按键失灵的键盘可以用了,省下键盘的钱...

    情况 笔记本曾经拆装 清理灰尘之类 也重装过系统 键盘可以使用 就是部分按键失灵 触控板正常使用 驱动也安装了 最初判断 键盘坏了 但笔记本电脑键盘拆卸比较麻烦 没有动手 实际原因 驱动问题 处理方法 更新驱动即可 具体操作如下 右击此电脑
  • python逻辑判断

    1 if语句 info my name is xiaomu info list info split print info list if info list 0 xiaomu info list 0 dewei if info list
  • 【Matlab】二维图绘制及填色总结(basic)

    编程渣的艰难探索之Matlab绘图 个人需求 用matlab绘制多条曲线并在指定不规则区域填色 为什么一定要用Matlab呢 因为我觉得图形便于修改 看起来较为正规 代码量较少 1 同时绘制多条曲线 1 1 基本代码 真的很基础 x 0 0
  • redis在springboot中如何配置并启动

    在Spring Boot中配置和启动Redis非常简单 首先你需要安装Redis 然后添加一个Redis的配置文件 然后在Spring Boot的配置文件中添加相关的Redis配置信息 最后通过Spring Boot启动Redis即可
  • linux搭建FTP服务器步骤

    linux搭建FTP服务器 在linux操作系统中搭建ftp服务器 ftp服务器会提供三种远程登录方式 分别是匿名登录方式 本地用户方式和虚拟用户方式 这里我将把这三种搭建ftp服务器的操作步骤分享出来 供大家参考 一 匿名搭建 1 安装F
  • 22年字节跳动飞书人力套件二面面经

    前言 前文链接 https www hengy1 top article c956b8c6 html 简单介绍本次面试 波澜起伏吧 面试完自己心里没有啥底 24届本科菜鸡 没网上问的那么难 八股偏少 话不多说了直接来个复盘 二面 70min
  • logging模块学习

    logging 基础知识 logging的基础知识 logging basicConfig 参数介绍 filename 创建一个 FileHandler 使用指定的文件名 而不是使用 StreamHandler filemode 如果指明了