python日志记录

2023-10-30

日志记录

日志:

  1. 排错
  2. 程序调试
  3. 用户行为分析

python logging模块

日志等级:

日志等级 数值表示 描述
DEBUG 10 最详细的日志,常用于调试
INFO 20 详细日志,记录关键节点
WARNING 30 当前有不期望的事情发生
ERROR 40 发生错误问题,导致某些功能不能正常使用
CRITICAL 50 发生严重错误程序不能运行了
简单使用
import logging
LOG_FORMAT="%(asctime)s-%(levelname)s:%(message)s"
logging.basicConfig(level=logging.DEBUG,format=LOG_FORMAT,filename="my.log")#filename指定日志的存储路径
logging.basicConfig(level=logging.DEBUG,format=LOG_FORMAT)#level=logging.DEBUG指定日志等级,默认的日志等级为warning
logging.debug("this is debug")
logging.info("this is info")
logging.warning("this is warning")
logging.error("this is error")
logging日志的四大组件

日志器 Logger
处理器 Handler
过滤器 Filter
格式器 Formatter

#获取logger对象,用于记录日志
logger = logging.getLogger()



#创建handler对象,用于写入日志文件,规定日志输出到哪里
fh = logging.FileHandler("my.log")

#输出到屏幕
ch = logging.StreamHandler()

#指定格式
formatter=logging.Formatter("%(asctime)s-%(levelname)s:%(message)s")

#绑定formatter到handler上
fh.setFormatter(formatter)

#绑定handler到logger上
logger.addHandler(fh)
logger.addHandler(ch)

logger.info("logger info....")
logger.warning("Logger warining...")
logger.error("Logger error...")
#也可以通过配置文件--josn格式去指定

日志轮转 —Linux logrotate服务,—配置文件:/etc/logrotate.conf或者/etc/logrotate.d

按时间
按大小

按大小
按大小
import logging
from logging.handlers import RotatingFileHandler,
#获取logger对象,用于记录日志
logger = logging.getLogger()
# 日志轮转


#创建handler对象,用于写入日志文件,规定日志输出到哪里
# fh = logging.FileHandler("my.log")

#按大小轮转
fh=RotatingFileHandler("my.log",maxBytes=500,backupCount=2)

#输出到屏幕
ch = logging.StreamHandler()

#指定格式
formatter=logging.Formatter("%(asctime)s-%(levelname)s:%(message)s")

#绑定formatter到handler上
fh.setFormatter(formatter)

#绑定handler到logger上
logger.addHandler(fh)
logger.addHandler(ch)

logger.info("logger info....")
logger.warning("Logger warining...")
logger.error("Logger error...")
#也可以通过配置文件--josn格式去指定
for i in range(10000):
    logger.warning("Logger warining.....")
按时间
import logging
from logging.handlers import RotatingFileHandler,TimedRotatingFileHandler
#获取logger对象,用于记录日志
logger = logging.getLogger()
# 日志轮转


#创建handler对象,用于写入日志文件,规定日志输出到哪里
# fh = logging.FileHandler("my.log")

#按大小轮转
# maxBytes为大小,backupCount为备份个数
fh=RotatingFileHandler("my.log",maxBytes=500,backupCount=2)
#按时间轮转
# when="D"为按天轮转interval=2两天一轮转
fh=TimedRotatingFileHandler("my.log",when="D",interval=2,backupCount=2)
#输出到屏幕
ch = logging.StreamHandler()

#指定格式
formatter=logging.Formatter("%(asctime)s-%(levelname)s:%(message)s")

#绑定formatter到handler上
fh.setFormatter(formatter)

#绑定handler到logger上
logger.addHandler(fh)
logger.addHandler(ch)

#也可以通过配置文件--josn格式去指定
logger.info("logger info....")
logger.warning("Logger warining...")
logger.error("Logger error...")

# for i in range(10000):
#     logger.warning("Logger warining.....")


logger2=logging.getLogger("sc")
logger2.warning("this is logger2 message")

生成logger对象的时候,没有传递参数进去,那就是root logger—父日志
如果传递传递了参数进去,类似于子logger
子日志器会继承父日志的配置

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

python日志记录 的相关文章

  • 如何打印没有类型的defaultdict变量?

    在下面的代码中 from collections import defaultdict confusion proba dict defaultdict float for i in xrange 10 confusion proba di
  • 更改自动插入 tkinter 小部件的文本颜色

    我有一个文本框小部件 其中插入了三条消息 一条是开始消息 一条是结束消息 一条是在 单位 被摧毁时发出警报的消息 我希望开始和结束消息是黑色的 但被毁坏的消息 参见我在代码中评论的位置 插入小部件时颜色为红色 我不太确定如何去做这件事 我看
  • Spark的distinct()函数是否仅对每个分区中的不同元组进行洗牌

    据我了解 distinct 哈希分区 RDD 来识别唯一键 但它是否针对仅移动每个分区的不同元组进行了优化 想象一个具有以下分区的 RDD 1 2 2 1 4 2 2 1 3 3 5 4 5 5 5 在此 RDD 上的不同键上 所有重复键
  • 从 scikit-learn 导入 make_blobs [重复]

    这个问题在这里已经有答案了 我收到下一个警告 D Programming Python ML venv lib site packages sklearn utils deprecation py 77 DeprecationWarning
  • 如何使用装饰器禁用某些功能的中间件?

    我想模仿的行为csrf exempt see here https docs djangoproject com en 1 11 ref csrf django views decorators csrf csrf exempt and h
  • 执行命令而不将其保留在历史记录中[关闭]

    Closed 这个问题不符合堆栈溢出指南 help closed questions 目前不接受答案 在进行软件开发时 经常需要在命令行命令中包含机密信息 典型示例是将项目部署到服务器的凭据设置为环境变量 当我不想将某些命令存储在命令历史记
  • 运行多个 scrapy 蜘蛛的正确方法

    我只是尝试使用在同一进程中运行多个蜘蛛新的 scrapy 文档 http doc scrapy org en 1 0 topics practices html但我得到 AttributeError CrawlerProcess objec
  • Abaqus 将曲面转化为集合

    我一直试图在模型中找到两个表面的中心 参见照片 但未能成功 它们是元素表面 面 查询中没有选项可以查找元素表面的中心 只能查找元素集的中心 找到节点集的中心也很好 但是我的节点集没有出现在工具 gt 查询 gt 质量属性选项中 而且我找不到
  • Python:字符串不会转换为浮点数[重复]

    这个问题在这里已经有答案了 我几个小时前写了这个程序 while True print What would you like me to double line raw input gt if line done break else f
  • 当玩家触摸屏幕一侧时,如何让 pygame 发出警告?

    我使用 pygame 创建了一个游戏 当玩家触摸屏幕一侧时 我想让 pygame 给出类似 你不能触摸屏幕两侧 的错误 我尝试在互联网上搜索 但没有找到任何好的结果 我想过在屏幕外添加一个方块 当玩家触摸该方块时 它会发出警告 但这花了很长
  • 如何将 numpy.matrix 提高到非整数幂?

    The 运算符为numpy matrix不支持非整数幂 gt gt gt m matrix 1 0 0 5 0 5 gt gt gt m 2 5 TypeError exponent must be an integer 我想要的是 oct
  • Python:尝试检查有效的电话号码

    我正在尝试编写一个接受以下格式的电话号码的程序XXX XXX XXXX并将条目中的任何字母翻译为其相应的数字 现在我有了这个 如果启动不正确 它将允许您重新输入正确的数字 然后它会翻译输入的原始数字 我该如何解决 def main phon
  • 从 pygame 获取 numpy 数组

    我想通过 python 访问我的网络摄像头 不幸的是 由于网络摄像头的原因 openCV 无法工作 Pygame camera 使用以下代码就像魅力一样 from pygame import camera display camera in
  • 检查所有值是否作为字典中的键存在

    我有一个值列表和一本字典 我想确保列表中的每个值都作为字典中的键存在 目前我正在使用两组来确定字典中是否存在任何值 unmapped set foo set bar keys 有没有更Pythonic的方法来测试这个 感觉有点像黑客 您的方
  • VSCode:调试配置中的 Python 路径无效

    对 Python 和 VSCode 以及 stackoverflow 非常陌生 直到最近 我已经使用了大约 3 个月 一切都很好 当尝试在调试器中运行任何基本的 Python 程序时 弹出窗口The Python path in your
  • glpk.LPX 向后兼容性?

    较新版本的glpk没有LPXapi 旧包需要它 我如何使用旧包 例如COBRA http opencobra sourceforge net openCOBRA Welcome html 与较新版本的glpk 注意COBRA适用于 MATL
  • 用于运行可执行文件的python多线程进程

    我正在尝试将一个在 Windows 上运行可执行文件并管理文本输出文件的 python 脚本升级到使用多线程进程的版本 以便我可以利用多个核心 我有四个独立版本的可执行文件 每个线程都知道要访问它们 这部分工作正常 我遇到问题的地方是当它们
  • 如何使用google colab在jupyter笔记本中显示GIF?

    我正在使用 google colab 想嵌入一个 gif 有谁知道如何做到这一点 我正在使用下面的代码 它并没有在笔记本中为 gif 制作动画 我希望笔记本是交互式的 这样人们就可以看到代码的动画效果 而无需运行它 我发现很多方法在 Goo
  • FileOutputStream.close() 中的设备 ioctl 不合适

    我有一些代码可以使用以下命令将一些首选项保存到文件中FileOutputStream 这是我已经写了一千遍的标准代码 FileOutputStream out new FileOutputStream file try BufferedOu
  • Pandas 与 Numpy 数据帧

    看这几行代码 df2 df copy df2 1 df 1 df 1 values 1 df2 ix 0 0 我们的教练说我们需要使用 values属性来访问底层的 numpy 数组 否则我们的代码将无法工作 我知道 pandas Data

随机推荐

  • 2.5.9 构架虚拟Fiber Channel (vFC)

    最后更新2021 07 30 架构虚拟FC比虚拟scsi更简单 但有一些额外的要求 主要的需求包括 使用vFC的分区只支持AIX v5 3 TL10 v6 1 TL2或者SUSE Linux Enterprise Server 11以后版本
  • 判断一个对象是否有某一个属性

    如果我们要检测xiaoming是否拥有某一属性 可以用in操作符 var xiaoming name 小明 birth 1990 school No 1 Middle School height 1 70 weight 65 score n
  • 关于poc的查找

    1 已知漏洞cve号 1 github https github com 2 twitter https twitter com home 3 直接浏览器搜索 google 百度 4 微信搜索 2 批量找poc 1 发现者3号有github
  • 爬虫:从入门到入狱,进去一起做兄弟

    从入门到入狱 中国爬虫违法违规案例汇总 1 一 什么是爬虫 二 爬虫的分类 搜索引擎 百度 谷歌 数据采集 天眼查 企查查 薅羊毛 抢票机器人 秒杀软件 比价软件 微博僵尸粉 三 爬虫与反爬虫 1 君子协议 robots txt www b
  • Chrome浏览器禁用更新

    操作步骤 我的电脑 进入目录 C Windows System32 drivers etc 修改hosts文件 在末尾添加 127 0 0 1 update googleapis com 保存并退出 按win r 快捷键 输入cmd打开命令
  • spring-mvc的重定向和转发

    重定向和转发 servlet的方法 Controller public class ResultGo 在页面上打印 RequestMapping result t1 public void test1 HttpServletRequest
  • 终于弄懂tf.reduce_sum()函数和tf.reduce_mean()函数

    参考博客 1 https www zhihu com question 51325408 answer 125426642 2 https www w3cschool cn tensorflow python tensorflow pyth
  • typescript 提示 Object is possibly null

    Object is possibly null 对象可能是null 分析 localStorage getItem SET HISTORY KEY 这个值有可能为空 所以再执行getItem就会报错此刻对象可能为空 解决 联合类型 把nul
  • linux单进程最大内存,限制单个Linux进程的内存使用量

    我正在运行pdftoppm将用户提供的PDF转换为300DPI图像 这非常有用 除非用户提供的页面大小非常大 pdftoppm将分配足够的内存来在内存中保存该大小的300DPI图像 对于100英寸的方形页面 每像素100 300 100 3
  • 关于Postman无法显示中文的解决方案(翻译)

    在使用Postman时很多人因为界面是纯英文的感到很头疼 会面临不知道什么意思及界面看不懂的情况 于是出现了需要将界面汉化翻译过来的需求 但从实际工作经验来讲 个人还是比较喜欢看英文界面的 可能也是看习惯了导致的吧 本文以两种方式帮助读者理
  • FPGA虚拟时钟约束详解

    FPGA虚拟时钟约束详解 在FPGA设计中 时钟是一个至关重要的因素 为了确保时序分析的准确性 并满足特定应用对时钟精度的要求 我们需要通过时钟约束来对FPGA设计进行优化和配置 本文将详细介绍FPGA虚拟时钟约束的原理与实现方法 一 什么
  • 2023,软件测试人的未来在哪里?

    2023年 IT行业出现空前的萧条 首先是年初一开始各大厂像着了魔似的不约而同的纷纷裁员 降薪 奖金包缩水 随之而来的是需求萎缩 HC减少或封锁等等 而有幸未被列入裁员名单的在职人员 庆幸之余也心有余悸 伴随着恐慌 说不定哪天裁员就轮到了自
  • Cocos2d C++与lua互相调用

    参考文章 cocos2dx之Lua调用C 与 cocos2dx之C 调用Lua 感谢 乐逍遥Jun的参考 我是用的是 3 13版本 创建一个 lua版本的工程 我的工程名称是 TestLua 一 lua 调用c 1 编写一个 ini文件 路
  • 自驱力超强的羊驼?斯坦福微调LLaMa

    大型 指令调优 语言模型在新任务上展现了Zero shot的卓越能力 但严重依赖于人类编写的指令数据 而这些数据在数量 多样性和创造性方面都是有限的 斯坦福科研人员引入了self instruction框架 提高指令遵循能力来自我迭代进化
  • 利用MATLAB做一维CNN分类 问题及解决方法

    利用MATLAB做一维数据的CNN分类 问题及解决方法 我在做一维CNN分类时参考了知乎凉拌西红柿答主的程序示例 根据其代码改编实现了CNN分类 其中遇到的问题与解决方法总结如下 1 数据维度转换问题 for i 1 1 3000 for
  • python字符识别_crnn(基于pytorch、python3) 实现不定长中文字符识别

    在六七月份参加了一个比赛 做的项目是提取图片中的文字信息 首先是接触了一些文本检测算法 如CTPN East 后研究了文本识别算法 我认为较好的是CRNN 代码实现是参考算法提出者的pytorch python3版本的crnn实现 因为py
  • Oracle 删除命令详解

    Oracle 删除表方式分为三种 第一种 drop 命令 drop table 表名 实战 drop table erms biz accep management drop table ERMS BIZ ARCH COMPANY SPEC
  • @WebServlet注解(Servlet注解)

    WebServlet注解 文章目录 WebServlet注解 前言 一 WebServlet 注解的属性 二 WebServlet 注解的使用 1 启用注解支持 2 使用 WebServlet 注解 WebServlet 注解 和 web
  • 香港政府活用无人机,正式应用到调研检测领域

    香港机电工程署正式用无人机来完成燃气管道的监测工作 完整的数据库将能帮助工程师识别高危煤气管道 近些年来 无人机的使用已经日趋广泛 逐步被应用到各个领域 近日 香港机电工程署目前正在利用无人机来检测燃气管道 香港电机工程署所采用的无人机有摄
  • python日志记录

    日志记录 日志 排错 程序调试 用户行为分析 python logging模块 日志等级 日志等级 数值表示 描述 DEBUG 10 最详细的日志 常用于调试 INFO 20 详细日志 记录关键节点 WARNING 30 当前有不期望的事情