一、logging相关配置

 1 import logging
2 """
3 asctime:运行时间
4 name:主模块名称
5 levelname:日志级别 INFO、DEBUG
6 message:日志内容
7 """
8 # 日志配置
9 logging.basicConfig(level=logging.DEBUG, format='%(asctime)s-%(name)s - \
10 %(levelname)s-%(message)s')
11
12 # 声明了一个 Logger 对象,它就是日志输出的主类
13 # __name__:执行主模块的名称
14 logger= logging.getLogger(__name__)
15 # 日志信息内容输出
16 logger.info('信息')
17 # 日志信息调试输出
18 logger.debug("调试")
19 # 日志信息警告输出
20 logger.warning("警告")
21 logger.info("完成")

注: 

1 # 另一种设置日志级别的方式,对实例化对象进行级别配置
2 logger.setLevel(level=logging.DEBUG)
  • filename:即日志输出的文件名,如果指定了这个信息之后,实际上会启用 FileHandler(日志存入文件中),而不再是 StreamHandler(控制台输出),这样日志信息便会输出到文件中了。
  • filemode:这个是指定日志文件的写入方式,有两种形式,w:清除后写入,一种是 a:追加写入。
  • format:指定日志信息的输出格式
  • datefmt:指定时间的输出格式。
  • style:如果 format 参数指定了,这个参数就可以指定格式化时的占位符风格,如 %、{、$ 等。
  • level:指定日志输出的类别,程序会输出大于等于此级别的信息。
  • stream:在没有指定 filename 的时候会默认使用 StreamHandler,这时 stream 可以指定初始化的文件流。
  • handlers:可以指定日志处理时所使用的 Handlers,必须是可迭代的。

扩展:

  • level对应等级

二、Handler用法:

 1 import logging
2 from logging.handlers import HTTPHandler
3 import sys
4
5
6 # 实例化logging一个对象
7 logger = logging.getLogger(__name__)
8 # 配置日志级别为DEBUG
9 logger.setLevel(level=logging.DEBUG)
10 # 指定信息输出格式
11 formatter = logging.Formatter('%(asctime)s - %(name)s - %(levelname)s - %(message)s')
12
13 # streamHandler
14 # 指定日志文件并创建一个handler对象
15 stream_handler = logging.StreamHandler(sys.stdout)
16 stream_handler.setLevel(level=logging.DEBUG)
17 # 将输出格式和handler绑定
18 stream_handler.setFormatter(formatter)
19 # 将handler对象和logger(日志对象)绑定
20 logger.addHandler(stream_handler)
21
22 # FileHandler
23 file_handler = logging.FileHandler('out.log')
24 file_handler.setLevel(logging.INFO)
25 file_handler.setFormatter(formatter)
26 logger.addHandler(file_handler)
27
28 # HTTPHandler
29 http_handler = HTTPHandler(host='localhost:8001', url='log', method='POST')
30 logger.addHandler(http_handler)
31
32 # 日志输出信息
33 logger.info('Info')
34 logger.debug('Debug')
35 logger.warning('Warning')
36 logger.info('Finish')

三、Formatter

pythonn全栈学习笔记--logging模块学习(四)的更多相关文章

  1. Python 全栈开发六 常用模块学习

    本节大纲: 模块介绍 time &datetime模块 random os sys shutil json & picle shelve configparser hashlib 一. ...

  2. Python全栈开发-Day5-常用模块学习

    本节大纲: 模块介绍 time &datetime模块 random os sys shutil shelve xml处理 pyyaml处理 configparser hashlib re正则 ...

  3. python 学习笔记 -logging模块(日志)

    模块级函数 logging.getLogger([name]):返回一个logger对象,如果没有指定名字将返回root loggerlogging.debug().logging.info().lo ...

  4. Python全栈之路----常用模块学习----模块的种类和导入方法

    什么是模块? 在计算机程序的开发过程中,随着程序代码越写越多,在一个文件里代码就会越来越长,越来越不容易维护. 为了编写可维护的代码,我们把很多函数分组,分别放到不同的文件里,这样,每个文件包含的代码 ...

  5. Python3学习笔记25-logging模块

    logging模块,Python自带用来记录日志的模块. 因为工作需要用到关于日志的,最近一直都在看关于日志模块的东西,百度了很多文章,可惜都是看的让人一头雾水,最后运气不错,找到一篇很详细的文章.传 ...

  6. Python logging 模块学习

    logging example Level When it's used Numeric value DEBUG Detailed information, typically of interest ...

  7. 学习笔记:CentOS7学习之十七: Linux计划任务与日志的管理

    目录 学习笔记:CentOS7学习之十七: Linux计划任务与日志的管理 17.1 计划任务-at-cron-计划任务使用方法 17.1.1 at计划任务的使用 17.1.2 查看和删除at将要执行 ...

  8. HTML+CSS学习笔记 (6) - 开始学习CSS

    HTML+CSS学习笔记 (6) - 开始学习CSS 认识CSS样式 CSS全称为"层叠样式表 (Cascading Style Sheets)",它主要是用于定义HTML内容在浏 ...

  9. 学习笔记:CentOS7学习之二十五:shell中色彩处理和awk使用技巧

    目录 学习笔记:CentOS7学习之二十五:shell中色彩处理和awk使用技巧 25.1 Shell中的色彩处理 25.2 awk基本应用 25.2.1 概念 25.2.2实例演示 25.3 awk ...

  10. 学习笔记:CentOS7学习之二十:shell脚本的基础

    目录 学习笔记:CentOS7学习之二十:shell脚本的基础 20.1 shell 基本语法 20.1.1 什么是shell? 20.1.2 编程语言分类 20.1.3 什么是shell脚本 20. ...

随机推荐

  1. 【SSO单点系列】(5):CAS4.0 之JDBC

    deployerConfigContext.xml 修改对应添加以下代码 <bean id="SearchModeSearchDatabaseAuthenticationHandler ...

  2. memoの关于Qt的一些用法记录

    Qt自动调整窗口尺寸 之前写过,方法就是: QTimer::singleShot(0, this, [this]{ this->adjustSize(); }); 重复记录一下. 如何把一个Mo ...

  3. c--> #define 定义宏

    #define 定义宏 宏(Macro)是预处理命令的一种,它允许用一个标识符来表示一个字符串 1.有关定义宏的代码末尾不需要添加":"(分号) 2.定义宏define在计算的式子 ...

  4. About TopoJSON

    An extension of GeoJSON that encodes topology!  TopoJSON https://github.com/topojson/topojson The To ...

  5. Java基础学习:9、访问修饰符

    Java提供四种访问控制修饰符,用于控制方法和属性(成员变量)的访问权限(范围). 注意事项: 1.修饰符可以访问类中的属性.成员方法.以及类. 2.只用默认修饰符.public可以修饰类. 3.成员 ...

  6. 2023-03-02 TypeError: null is not an object (evaluating 'ImageCropPicker.openPicker')

    问题描述:rn项目使用到了一个插件react-native-image-crop-picker,运行后报错. 原因:安装该插件的时候没有link到android包里. 解决方案: react-nati ...

  7. FTP主动模式(Port)和被动模式(Passive)的区别

    1.FTP的PORT(主动模式): PORT中文称为主动模式,工作的原理: FTP客户端(1024以上端口)连接到FTP服务器的21端口,发送用户名和密码登录, 登录成功后要list列表或者读取数据时 ...

  8. seata数据源代理

    seata数据源代理流程 1-SeataDataSourceAutoConfiguration 创建SeataAutoDataSourceProxyCreator对象,默认seata模式为AT 2-S ...

  9. thinkphp5.0 分页用法

    $num = input('get.page')?input('get.page'):1; //接收参数 //数据的总数量 $count = Db::name('user')->where([' ...

  10. vbox批量管理工具 VirtualBox硬件级虚拟机大众网络版v2019/v2020/v2021 免费版下载地址

    浪潮vbox批量管理器-基础网络版 大众版 免费版 免激活码 免注册码 V2021下载地址:    https://d1.crsky.com/software2/20210107/VBoxMgr_v2 ...