Python 日志(略讲)

日志操作

在这里插入图片描述

日志输出:

# 输出日志信息
logging.debug("调试级别日志")
logging.info("信息级别日志")
logging.warning("警告级别日志")
logging.error("错误级别日志")
logging.critical("严重级别日志")

级别设置

logging.basicConfig(level=logging.DEBUG") #设置日志级别从DEBUG级开始

基础操作Code

# author:xiaowang
# date:2023/12/6
# 需求:日志  优先级:DEBUG < INFO < WARNING < ERROR< CRITICAL
# 用途:调试程序
import logging
# 自定义日志格式
# fmt = "%(asctime)s - %(levelname)s - %(message)s"
# 时间、级别、用户、文件名、类名、行、提示信息
fmt="%(asctime)s -%(levelname)s -[%(name)s] -[%(filename)s -(%(funcName)s:%(lineno)d)] - %(message)s"
# 设置日志级别从那级开始
logging.basicConfig(level=logging.DEBUG,format=fmt,filename="log/shuchu.log") #设置日志级别从DEBUG级开始

# 输出日志信息
logging.debug("调试级别日志")
logging.info("信息级别日志")
logging.warning("警告级别日志")
logging.error("错误级别日志")
logging.critical("严重级别日志")

输出到文档

在这里插入图片描述

高级操作

流程:

在这里插入图片描述
在这里插入图片描述
Q1:日志器和处理器都设置了级别,到底是执行那个级别?
谁的级别高谁起作用

高级操作 Code

# 原理类似分液漏斗 四大组件日志器 logger 处理器 handler 格式器 formatter 过滤器 filter
import logging.handlers  #手工导包
import logging
import time

logger = logging.getLogger() #创建日志器
logger.setLevel(logging.DEBUG) #设置日志级别
sf = logging.StreamHandler() #创建控制台处理器
hf = logging.handlers.TimedRotatingFileHandler("log.log",when='M',interval=1,backupCount=3) #创建文件处理器(每隔1分钟备份1次,1次3份)
sf.setLevel(logging.DEBUG) #将DEBUG级别的提示信息送到控制台
hf.setLevel(logging.INFO) #将INFO级别的提示信息送到文件处理器

# 创建格式器
fmt="%(asctime)s -%(levelname)s -[%(name)s] -[%(filename)s -(%(funcName)s:%(lineno)d)] - %(message)s"
formatter = logging.Formatter(fmt=fmt)

# 将格式器添加到处理器中
sf.setFormatter(formatter)
hf.setFormatter(formatter)

# 将处理器添加到日志
logger.addHandler(sf)
logger.addHandler(hf)

#输出日志信息
while True:
    time.sleep(3)
    logging.debug("调试级别日志")
    logging.info("信息级别日志")
    logging.warning("警告级别日志")
    logging.error("错误级别日志")
    logging.critical("严重级别日志")

在这里插入图片描述
在这里插入图片描述

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:/a/222318.html

如若内容造成侵权/违法违规/事实不符,请联系我们进行投诉反馈qq邮箱809451989@qq.com,一经查实,立即删除!

相关文章

MySQL授权密码

mysql> crate databases school charcter set utf8; Query OK, 1 row affected, 1 warning (0.00 sec) 2.在school数据库中创建Student和Score表 mysql> use school Database changed mysql> create table student-> -> (id int(10) primary key auto_incremen…

springcloud智慧工地管理平台源码(工程全生命周期管理)

智慧工地采用全新的工程全生命周期管理理念&#xff0c;以物联网技术为核心&#xff0c;利用传感网络、远程视频监控、物联网、云计算等新型技术&#xff0c;依托移动和固定宽带网络&#xff0c;围绕施工过程管理&#xff0c;建造互联协同、智能生产、科学管理的信息化生态圈&a…

使用Java API操作HDFS

文章目录 一、了解HDFS Java API&#xff08;一&#xff09;HDFS Java API概述1、配置&#xff08;Configuration&#xff09;2、文件系统&#xff08;FileSystem&#xff09;3、路径&#xff08;Path&#xff09;4、输入输出流&#xff08;FSDataInputStream 和 FSDataOutputS…

智能优化算法应用:基于黑寡妇算法无线传感器网络(WSN)覆盖优化 - 附代码

智能优化算法应用&#xff1a;基于黑寡妇算法无线传感器网络(WSN)覆盖优化 - 附代码 文章目录 智能优化算法应用&#xff1a;基于黑寡妇算法无线传感器网络(WSN)覆盖优化 - 附代码1.无线传感网络节点模型2.覆盖数学模型及分析3.黑寡妇算法4.实验参数设定5.算法结果6.参考文献7.…

将java jar包构建成docker镜像

&#xff08;1&#xff09;准备jar包、准备jdk镜像、创建Dockerfile文件 jar包、Dockerfile文件在同一目录&#xff0c;如下 Dockerfile文件内容如下 FROM jdk1.8:1.0 MAINTAINER vinegar93 "vinegar93163.com" COPY test-0.0.1.jar /home ENTRYPOINT ["java&…

高分屏、屏幕有缩放比情况下Winform窗体变形问题解决方案

高分屏、屏幕有缩放比情况下Winform窗体变形问题解决方案 环境问题描述解决方案永久方案&#xff1a;修改注册表&#xff08;亲测有效&#xff0c;个人推荐&#xff09; 环境 电脑&#xff1a;联想拯救者Y9000P 主屏分辨率&#xff1a;2560x1600 缩放&#xff1a;150% 操作系统…

【人工智能Ⅰ】实验7:K-means聚类实验

实验7 K-means聚类实验 一、实验目的 学习K-means算法基本原理&#xff0c;实现Iris数据聚类。 二、实验内容 应用K-means算法对iris数据集进行聚类。 三、实验结果及分析 0&#xff1a;输出数据集的基本信息 参考代码在main函数中首先打印了数据、特征名字、目标值、目标…

十四、FreeRTOS之FreeRTOS任务相关API函数

本节主要介绍以下内容&#xff1a; 1&#xff0c;队列简介&#xff08;了解&#xff09; 2&#xff0c;队列结构体介绍&#xff08;熟悉&#xff09; 3&#xff0c;队列相关API函数介绍&#xff08;熟悉&#xff09; 4&#xff0c;队列操作实验&#xff08;掌握&#xff09…

RocketMQ-核心编程模型

RocketMQ的消息模型 深入理解RocketMQ的消息模型 RocketMQ客户端基本流程 RocketMQ基于Maven提供了客户端的核心依赖&#xff1a; <dependency><groupId>org.apache.rocketmq</groupId><artifactId>rocketmq-client</artifactId><version&…

Guava中的函数式编程

第1章&#xff1a;引言 大家好&#xff01;今天小黑要和咱们聊聊&#xff0c;在Java中使用Guava来进行函数式编程。首先&#xff0c;让我们来聊聊什么是函数式编程。简单来说&#xff0c;函数式编程是一种编程范式&#xff0c;它将计算视为函数的评估&#xff0c;避免使用程序…

git stash 对当前分支修改的内容进行暂存

我们在开发的时候往往会遇到这种情况, 在一个分支开发,写了不少内容,但是突然来了一个紧急的需求需要切换分支,去做这个需求,但是当前的分支又因为没有开发完成,不想形成一条无效的commit记录,这时我们就到暂存上场了 git stash 暂存 // 切分支之前 对当前分支修改的内容进行暂…

uni-app 设置tabBar的setTabBarBadge购物车/消息等角标

目录 一、效果二、代码实现二、全部代码1.index.vue2.cart.vue 三、真实案例参考最后 一、效果 二、代码实现 只要使用uni.setTabBarBadge和uni.removeTabBarBadge来进行对红点的设置和移除。 主要代码&#xff1a; //设置红点 uni.setTabBarBadge({index: 1, // 底部菜单栏…

西南科技大学C++程序设计实验七(继承与派生二)

一、实验目的 1. 掌握多继承程序设计 2. 掌握虚基类编程 3. 拓展学习可视化程序设计中的继承与派生应用 二、实验任务 重点:掌握虚基类的定义与实现,拓展其功能。 阅读分析、完善程序。下面程序(1)与程序(2)分别是没有使用虚基类和使用虚基类的代码,其中A是最上层基…

Vue 生成包含数字大小写字母的随机字符串

generateRandomID() {const characters 0123456789abcdefghijklmnopqrstuvwxyzABCDEFGHIJKLMNOPQRSTUVWXYZ;const idLength 30; // 字符串长度 这里生成30位的let randomID ;for (let i 0; i < idLength; i) {const randomIndex Math.floor(Math.random() * characters…

【开源】基于Vue+SpringBoot的网上药店系统

项目编号&#xff1a; S 062 &#xff0c;文末获取源码。 \color{red}{项目编号&#xff1a;S062&#xff0c;文末获取源码。} 项目编号&#xff1a;S062&#xff0c;文末获取源码。 目录 一、摘要1.1 项目介绍1.2 项目录屏 二、功能模块2.1 数据中心模块2.2 药品类型模块2.3 药…

一:对爬虫的简单认识

一&#xff1a;爬虫前导知识 1.爬虫引入&#xff1a; ​ 网络爬虫又称为网络蜘蛛&#xff1b;网络蚂蚁&#xff1b;网络机器人等&#xff0c;可以自动高效地从互联网的海量信息中浏览获取到我们感兴趣的信息&#xff0c;在浏览信息的时候需要按照我们制定的规则进行&#xff…

打开率高的开发信主题?邮件的标题怎么写?

如何写高点击率的开发信主题&#xff1f;推荐的邮件标题模板&#xff1f; 一封高效的开发信可以是你争取客户的第一步。但是&#xff0c;要让你的邮件在收件人的收件箱中引起关注并被打开&#xff0c;你需要选择一个吸引人的主题。蜂邮将介绍一些打开率高的开发信主题&#xf…

tensorflow模型的加载及保存,以及在C++端的部署

一、模型保存和加载 参考文章:TensorFlow2.0 —— 模型保存与加载 方法一、 仅保存模型权重(model.save_weights) 有两种保存模型权重的方法,一种是保存.h5形式。model.save_weights("adasd.h5") # 模型权重保存 model.load_weights("adasd.h5") # 模型…

数组划分问题

文章目录 移动零 移动零 class Solution { public: void moveZeroes(vector<int>& nums) {int dest -1;int cur 0;while(cur < nums.size()){if (nums[cur] ! 0){dest;swap(nums[cur], nums[dest]);}cur;} } };

前端路由(front-end routing)和后端路由(back-end routing)的区别

聚沙成塔每天进步一点点 ⭐ 专栏简介 前端入门之旅&#xff1a;探索Web开发的奇妙世界 欢迎来到前端入门之旅&#xff01;感兴趣的可以订阅本专栏哦&#xff01;这个专栏是为那些对Web开发感兴趣、刚刚踏入前端领域的朋友们量身打造的。无论你是完全的新手还是有一些基础的开发…