码迷,mamicode.com
首页 > 其他好文 > 详细

Logging模块总结 2018/5/30

时间:2018-05-31 02:52:35      阅读:182      评论:0      收藏:0      [点我收藏+]

标签:unix   level   ted   enter   日志   3.1   set   函数名   生成   

日志的级别

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

标签:unix   level   ted   enter   日志   3.1   set   函数名   生成   

原文地址:https://www.cnblogs.com/GGGGGGZX/p/9114378.html

(0)
(0)
   
举报
评论 一句话评论(0
登录后才能评论!
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!