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日志记录 的相关文章

  • 如何在序列化器创建方法中获取 URL Id?

    我有以下网址 url r member P
  • python 模拟第三方模块

    我正在尝试测试一些处理推文的类 我使用 Sixohsix twitter 来处理 Twitter API 我有一个类充当 Twitter 类的外观 我的想法是模拟实际的 Sixohsix 类 通过随机生成新推文或从数据库检索它们来模拟推文的
  • 忽略 Mercurial hook 中的某些 Mercurial 命令

    我有一个像这样的善变钩子 hooks pretxncommit myhook python path to file myhook 代码如下所示 def myhook ui repo kwargs do some stuff 但在我的例子中
  • 更改 `base_compiledir` 以将编译后的文件保存在另一个目录中

    theano base compiledir指编译后的文件存放的目录 有没有办法可以永久设置theano base compiledir到不同的位置 也许通过修改一些内部 Theano 文件的内容 http deeplearning net
  • 如何通过在 Python 3.x 上按键来启动和中断循环

    我有这段代码 当按下 P 键时会中断循环 但除非我按下非 P 键 否则循环不会工作 def main openGame while True purchase imageGrab if a sum gt 1200 fleaButton ti
  • 使用鼻子获取设置中当前测试的名称

    我目前正在使用鼻子编写一些功能测试 我正在测试的库操作目录结构 为了获得可重现的结果 我存储了一个测试目录结构的模板 并在执行测试之前创建该模板的副本 我在测试中执行此操作 setup功能 这确保了我在测试开始时始终具有明确定义的状态 现在
  • ftrace:仅打印trace_printk()的输出

    是否可以只转储trace printk 输出于trace文件 我的意思是过滤掉函数跟踪器 或任何其他跟踪器 中的所有函数 一般来说 您可以在选项目录中关闭选项 sys kernel debug tracing options Use ls显
  • Numpy 过滤器平滑零区域

    我有一个 0 及更大整数的 2D numpy 数组 其中值代表区域标签 例如 array 9 9 9 0 0 0 0 1 1 1 9 9 9 9 0 7 1 1 1 1 9 9 9 9 0 2 2 1 1 1 9 9 9 8 0 2 2 1
  • Seaborn Pairplot 图例不显示颜色

    我一直在学习如何在Python中使用seaborn和pairplot 这里的一切似乎都工作正常 但由于某种原因 图例不会显示相关的颜色 我无法找到解决方案 因此如果有人有任何建议 请告诉我 x sns pairplot stats2 hue
  • 如何使用列表作为pandas数据框中的值?

    我有一个数据框 需要列的子集包含具有多个值的条目 下面是一个带有 运行时 列的数据框 其中包含程序在各种条件下的运行时 df condition a runtimes 1 1 5 2 condition b runtimes 0 5 0 7
  • 将 2D NumPy 数组按元素相乘并求和

    我想知道是否有一种更快的方法 专用 NumPy 函数来执行 2D NumPy 数组的元素乘法 然后对所有元素求和 我目前使用np sum np multiply A B 其中 A B 是相同维度的 NumPy 数组m x n 您可以使用np
  • 在 Pandas 中使用正则表达式的多种模式

    我是Python编程的初学者 我正在探索正则表达式 我正在尝试从 描述 列中提取一个单词 数据库名称 我无法给出多个正则表达式模式 请参阅下面的描述和代码 描述 Summary AD1 Low free DATA space in data
  • Python 将日志滚动到变量

    我有一个使用多线程并在服务器后台运行的应用程序 为了无需登录服务器即可监控应用程序 我决定包括Bottle http bottlepy org为了响应一些HTTP端点并报告状态 执行远程关闭等 我还想添加一种查阅日志文件的方法 我可以使用以
  • 使用yield 进行字典理解

    作为一个人为的例子 myset set a b c d mydict item yield join item s for item in myset and list mydict gives as cs bs ds a None b N
  • 如何在 OSX 上安装 numpy 和 scipy?

    我是 Mac 新手 请耐心等待 我现在使用的是雪豹 10 6 4 我想安装numpy和scipy 所以我从他们的官方网站下载了python2 6 numpy和scipy dmg文件 但是 我在导入 numpy 时遇到问题 Library F
  • 使用 PyTorch 分布式 NCCL 连接失败

    我正在尝试使用 torch distributed 将 PyTorch 张量从一台机器发送到另一台机器 dist init process group 函数正常工作 但是 dist broadcast 函数中出现连接失败 这是我在节点 0
  • Tkinter - 浮动窗口 - 调整大小

    灵感来自this https stackoverflow com a 22424245 13629335问题 我想为我的根窗口编写自己的调整大小函数 但我刚刚注意到我的代码显示了一些性能问题 如果你快速调整它的大小 你会发现窗口没有像我希望
  • 当鼠标悬停在上面时,intellisense vscode 不显示参数或文档

    我正在尝试将整个工作流程从 Eclipse 和 Jupyter Notebook 迁移到 VS Code 我安装了 python 扩展 它应该带有 Intellisense 但它只是部分更糟糕 我在输入句点后收到建议 但当将鼠标悬停在其上方
  • 限制 django 应用程序模型中的单个记录?

    我想使用模型来保存 django 应用程序的系统设置 因此 我想限制该模型 使其只能有一条记录 极限怎么办 尝试这个 class MyModel models Model onefield models CharField The fiel
  • 检查字典键是否有空值

    我有以下字典 dict1 city name yass region zipcode phone address tehsil planet mars 我正在尝试创建一个基于 dict1 的新字典 但是 它不会包含带有空字符串的键 它不会包

随机推荐

  • 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 当前有不期望的事情