日志的级别

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 用户输出的消息

最简单的方法:

  1. import logging模块;
  2. 写logging.语句;

    运行结果:

将日志写到文件中:

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

  1. 创建记录日志的文件,命名为example.log;

  2. import logging模块,写基本配置.basicConfig;
    {{LOGGING-03.gif(uploading...)}}

    只有当logging的级别高于基本配置里面的级别的时候,语句才能被写入到日志当中;
    如果在basicConfig里面没有指明level级别,那默认级别就是WARNING;

同时在屏幕和文件中写入日志:

  1. Logger部分
    1.1 生成logger对象:LOG = getLogger('给日志起的名字~')
    1.2 指定日志级别:LOG.setLevel(logging.DEBUG/INFO/WARNING/...)(即为全局级别,可以不设置)
    1.3 增加/删除指定的Handler:Logger.addHandler(hdlr),removeHandler(hdlr)
    ------------------
  2. 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/...)
    ----------------
  3. formatter组件
    3.1 设置formatter:formatter = logging.Formatter('%(asctime)s - %(name)s - %(levelname)s - %(message)s ......')(在其中添加日志格式,获取想要的相应的内容)
    3.2 添加formatter组件:需要加配置的变量名.setFormatter(设置的formatter名字)

Logging模块总结 2018/5/30的更多相关文章

  1. 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时间 ...

  2. Python之路(第十七篇)logging模块

    一.logging模块 (一).日志相关概念 日志是一种可以追踪某些软件运行时所发生事件的方法.软件开发人员可以向他们的代码中调用日志记录相关的方法来表明发生了某些事情.一个事件可以用一个可包含可选变 ...

  3. subprocess模块和logging模块

    主要内容: 一.subprocess模块 二.logging模块 1️⃣  subprocess模块 三种执行命令的方法 subprocess.run(*popenargs, input=None, ...

  4. 08 datetime与logging模块(进阶)

    datetime与logging模块 阶段一:日期与时间 1.datetime 模块中 主要类: 类名 功能说明 date 日期对象,常用的属性有year, month, day time 时间对象h ...

  5. Python中logging模块的基本用法

    在 PyCon 2018 上,Mario Corchero 介绍了在开发过程中如何更方便轻松地记录日志的流程. 整个演讲的内容包括: 为什么日志记录非常重要 日志记录的流程是怎样的 怎样来进行日志记录 ...

  6. logging模块基础

    很多程序都有记录日志的需求,日志不仅可以保存访问记录,也可以有错误,警告等信息输出. python的logging模块提供了标准的日志接口,可以通过logging存储各种格式的日志.logging模块 ...

  7. Python Logging模块的简单使用

    前言 日志是非常重要的,最近有接触到这个,所以系统的看一下Python这个模块的用法.本文即为Logging模块的用法简介,主要参考文章为Python官方文档,链接见参考列表. 另外,Python的H ...

  8. Python中的logging模块

    http://python.jobbole.com/86887/ 最近修改了项目里的logging相关功能,用到了python标准库里的logging模块,在此做一些记录.主要是从官方文档和stack ...

  9. 【python,logging】python中的logging模块

    本文章转自kenby的博客,比较全面易懂,转来留作以后使用. http://kenby.iteye.com/blog/1162698 一.从一个使用场景开始 import logging # 创建一个 ...

随机推荐

  1. 【java基础】java集合之TreeMap

    转载文章转载请注明出处:http://www.cnblogs.com/skywang12345/admin/EditPosts.aspx?postid=3310928 第1部分 TreeMap介绍 T ...

  2. 【DUBBO】Dubbo:monitor的配置

    [一]:配置项 <dubbo:monitor protocol="registry"/> [二]:配置解析器-->具体解析器为com.alibaba.dubbo. ...

  3. Hangfire 任务调度

    Hangfire是一个开源且商业免费使用的工具函数库.可以让你非常容易地在ASP.NET应用(也可以不在ASP.NET应用)中执行多种类型的后台任务,而无需自行定制开发和管理基于Windows Ser ...

  4. 使用PHP类库PHPqrCode生成二维码

    PHPqrCode是一个PHP二维码生成类库,利用它可以轻松生成二维码,官网提供了下载和多个演示demo, 查看地址:http://phpqrcode.sourceforge.net/.    下载官 ...

  5. 解读ASP.NET 5 & MVC6 ---- 系列文章

    本系列的大部分内容来自于微软源码的阅读和网络,大部分测试代码都是基于VS RC版本进行测试的. 解读ASP.NET 5 & MVC6系列(1):ASP.NET 5简介 解读ASP.NET 5 ...

  6. Go编译安装

    go编译安装: 设置环境变量 # sudo vim /etc/profile.d/go export GOROOT=/home/evescn/go export PATH=$PATH:$GOROOT/ ...

  7. Android 使用adb查看和修改电池信息

    1.获取电池信息 $ adb shell dumpsys battery $ adb shell dumpsys battery Current Battery Service state: AC p ...

  8. Python--线性代数篇

    讲解Python在线性代数中的应用,包括: 一.矩阵创建 先导入Numpy模块,在下文中均采用np代替numpy import numpy as np 矩阵创建有两种方法,一是使用np.mat函数或者 ...

  9. Unit01: Web概述 、 HTML概述 、 文本处理 、 图像和超链接 、 表格 、 表单

    Unit01: Web概述 . HTML概述 . 文本处理 . 图像和超链接 . 表格 . 表单 demo1.html <!-- 声明网页的版本(文档类型) --> <!doctyp ...

  10. Django 组件-中间件

    中间件 中间件的概念 中间件顾名思义,是介于request与response处理之间的一道处理过程,相对比较轻量级,并且在全局上改变django的输入与输出.因为改变的是全局,所以需要谨慎实用,用不好 ...