Logging模块总结 2018/5/30
日志的级别
| Level | 用处 | 数字级别 |
|---|---|---|
| DEBUG | 详细的信息,在调试过程中用于诊断错误 | 10 |
| INFO | 用于确认事件正在运行 | 20 |
| WARNING | 意外发生时予以提醒,或者预测一些未来可能发生的一些问题(比如:磁盘空间低等) | 30 |
| ERROR | 当一些错误发生,导致软件无法正常完成一些功能时 | 40 |
| CRITICAL | 严重的错误发生,表明程序本身无法继续运行 | 50 |
如果不设置日志的级别,电脑则会选择使用默认的级别进行过滤信息:
全局默认级别:WARNING;
屏幕显示级别:DEBUG;
文件显示级别:WARNING。
定义日志的格式
| %(name)s | Logger的名字 |
|---|---|
| %(levelno)s | 数字形式的日志级别 |
| %(levelname)s | 文本形式的日志级别 |
| %(pathname)s | 调用日志输出函数的模块的完整路径名,可能没有 |
| %(filename)s | 调用日志输出函数的模块的文件名 |
| %(module)s | 调用日志输出函数的模块名 |
| filename&module区别 | 文件名有.py,模块名则没有 |
| %(funcName)s | 调用日志输出函数的函数名 |
| %(lineno)d | 调用日志输出函数的语句所在的代码行 |
| %(created)f | 当前时间,用UNIX标准的表示时间的浮 点数表示 |
| %(relativeCreated)d | 输出日志信息时的,自Logger创建以 来的毫秒数 |
| %(asctime)s | 字符串形式的当前时间。默认格式是 “2003-07-08 16:49:45,896”。逗号后面的是毫秒 |
| %(thread)d | 线程ID。可能没有 |
| %(threadName)s | 线程名。可能没有 |
| %(process)d | 进程ID。可能没有 |
| %(message)s | 用户输出的消息 |
最简单的方法:
- import logging模块;
写logging.语句;
运行结果:

将日志写到文件中:
和最简单的方式不同的地方就是:在写入过程中加入了logging.basicConfig语句(在这里面可以添加各种日志的格式,比如,写入文件,路径名,时间等等)
创建记录日志的文件,命名为example.log;

import logging模块,写基本配置.basicConfig;
{{LOGGING-03.gif(uploading...)}}只有当logging的级别高于基本配置里面的级别的时候,语句才能被写入到日志当中;
如果在basicConfig里面没有指明level级别,那默认级别就是WARNING;
同时在屏幕和文件中写入日志:
- Logger部分:
1.1 生成logger对象:LOG = getLogger('给日志起的名字~')
1.2 指定日志级别:LOG.setLevel(logging.DEBUG/INFO/WARNING/...)(即为全局级别,可以不设置)
1.3 增加/删除指定的Handler:Logger.addHandler(hdlr),removeHandler(hdlr)
------------------- Handler部分:(本次仅记录logging.StreamHandler,logging.FileHandler)
2.1 生成Handler对象:
向屏幕输出 screen_han = logging.StreamHandler()
设置Handler级别:screen_han.setLevel(logging.DEBUG/INFO/WARNING/...)
向文件输出 file_han = logging.FileHandler();
设置Handler级别:file_han.setLevel(logging.DEBUG/INFO/WARNING/...)
----------------- formatter组件
3.1 设置formatter:formatter = logging.Formatter('%(asctime)s - %(name)s - %(levelname)s - %(message)s ......')(在其中添加日志格式,获取想要的相应的内容)
3.2 添加formatter组件:需要加配置的变量名.setFormatter(设置的formatter名字)
Logging模块总结 2018/5/30的更多相关文章
- s14 第5天 时间模块 随机模块 String模块 shutil模块(文件操作) 文件压缩(zipfile和tarfile)shelve模块 XML模块 ConfigParser配置文件操作模块 hashlib散列模块 Subprocess模块(调用shell) logging模块 正则表达式模块 r字符串和转译
时间模块 time datatime time.clock(2.7) time.process_time(3.3) 测量处理器运算时间,不包括sleep时间 time.altzone 返回与UTC时间 ...
- Python之路(第十七篇)logging模块
一.logging模块 (一).日志相关概念 日志是一种可以追踪某些软件运行时所发生事件的方法.软件开发人员可以向他们的代码中调用日志记录相关的方法来表明发生了某些事情.一个事件可以用一个可包含可选变 ...
- subprocess模块和logging模块
主要内容: 一.subprocess模块 二.logging模块 1️⃣ subprocess模块 三种执行命令的方法 subprocess.run(*popenargs, input=None, ...
- 08 datetime与logging模块(进阶)
datetime与logging模块 阶段一:日期与时间 1.datetime 模块中 主要类: 类名 功能说明 date 日期对象,常用的属性有year, month, day time 时间对象h ...
- Python中logging模块的基本用法
在 PyCon 2018 上,Mario Corchero 介绍了在开发过程中如何更方便轻松地记录日志的流程. 整个演讲的内容包括: 为什么日志记录非常重要 日志记录的流程是怎样的 怎样来进行日志记录 ...
- logging模块基础
很多程序都有记录日志的需求,日志不仅可以保存访问记录,也可以有错误,警告等信息输出. python的logging模块提供了标准的日志接口,可以通过logging存储各种格式的日志.logging模块 ...
- Python Logging模块的简单使用
前言 日志是非常重要的,最近有接触到这个,所以系统的看一下Python这个模块的用法.本文即为Logging模块的用法简介,主要参考文章为Python官方文档,链接见参考列表. 另外,Python的H ...
- Python中的logging模块
http://python.jobbole.com/86887/ 最近修改了项目里的logging相关功能,用到了python标准库里的logging模块,在此做一些记录.主要是从官方文档和stack ...
- 【python,logging】python中的logging模块
本文章转自kenby的博客,比较全面易懂,转来留作以后使用. http://kenby.iteye.com/blog/1162698 一.从一个使用场景开始 import logging # 创建一个 ...
随机推荐
- 《DSP using MATLAB》示例Example7.6 Type-3 Linear-Phase FIR
代码: h = [-4, 1, -1, -2, 5, 0, -5, 2, 1, -1, 4]; M = length(h); n = 0:M-1; [Hr, w, c, L] = Hr_Type3(h ...
- groovy && java 混编 gradle 配置
参考配置: apply plugin: "application" apply plugin: "java" apply plugin: "groov ...
- 异常处理--Exception(一)
很诱人的标题,今天不是给大家介绍,而是跟大家讨论些问题. 在做开发的这几年中,大大小小的项目也经历了很多,但无论那个项目中,都没有真正的对Exception进行完整的处理.虽然我们在学C#的时候,经常 ...
- STMM32 ‘&’ 操作
if(0x04 == (new_cfg&0x04)){ sys_cfg_msg.pps_cfg = ; cn_save_data[cn_save_index_stp].hash= ; sys_ ...
- bzoj2442[Usaco2011 Open]修剪草坪——单调队列优化
题目:https://www.lydsy.com/JudgeOnline/problem.php?id=2442 考虑记录前 i 个.末尾 j 个连续选上的最大值.发现时空会爆. 又发现大量的转移形如 ...
- 【SQLYOG】SSH ERROR:UNABLE TO OPEN CONNECTION:GETHOSTBYNAME:UNKNOWN ERROR牵引出来的一系列问题
出现这个问题很蹊跷,SQLyog管理过一二十台的mysql服务器或者vps,连接一直没有问题,各种服务商的都没问题,也包括阿里云的.可昨天偏偏一台阿里云的服务器本地通过SQLyog去连接它的时候报这样 ...
- 批处理实现mysql的备份
脚本 @echo off echo. echo MySQL数据库备份 echo ***************************** echo. echo 今天是 %date% echo 时间是 ...
- Java基础--NIO
NIO库在JDK1.4中引入,它以标准Java代码提供了高速的,面向块的IO,弥补了之前同步IO的不足. 缓冲区Buffer Buffers是一个对象,包含了一些要写入或读出的数据.在面向流的IO模型 ...
- Ladder面积
package com.hanqi; import javax.swing.plaf.synth.SynthSeparatorUI; //梯形 public class Ladder { double ...
- python(ValueError: invalid literal for int() with base 10: 'abc' ‘1.0‘’’)强制类型转换
int()函数只能转化数字组成的字符串,看例子: >>> a=' >>> int(a) 123 >>> b='abc' >>> ...
