写一下python的logging模块

原创 2018年04月17日 19:07:46

logging模块构成

  • Logger:暴露了应用程序代码能直接使用的接口
  • Handler:将Logger产生的日志记录发送至指定位置
  • Filter:输出粒度控制,决定输出哪些日志记录
  • Formatter:对输出进行格式化调整

日志级别

    NOTSET < DEBUG < INFO < WARNING < ERROR < CRITICAL

日志输出

输出到终端

导入logging模块会默认生成一个root logger, 它的默认级别为WARNING,低于该级别的logging函数不会在终端输出日志信息。

查看当前的level:

import logging

root_logger = logging.getLogger()
default_level = root_logger.level
level_name = logging.getLevelName(default_level) 

变更当前的level:

root_logger.setLevel(logging.DEBUG)
输出到文件
logging.basicConfig(filename='debug.log', level=logging.DEBUG)
定制输出格式

在调用basicConfig之前,logger的handle对象是空的,此时执行

logging.getLogger().handlers

得到的结果为:

[]

调用之后则会默认初始化一个handler对象:

[<logging.FileHandler object at 0x00000000025D8E80>]

获取当前的handle对象:

cur_handler = logging.getLogger().handlers[0]

声明一个formatter对象,并将该对象赋给handler:

LOGGING_FORMAT = '%(asctime)s - %(name)s - %(levelname)s - %(message)s'
formatter = logging.Formatter(LOGGING_FORMAT)
logging.getLogger().handlers[0].setFormatter(formatter)

输出是:

logging.warning('test')
2018-04-17 11:41:10,446 - root - WARNING - test
emmmm,这个模块暂时只用到这么多,以后有更多需求的话再来填坑。




python的logging日志模块(一)

最近修改了项目里的logging相关功能,用到了python标准库里的logging模块,在此做一些记录。主要是从官方文档和stackoverflow上查询到的一些内容。 官方文档 技术博客 ...
  • langb2014
  • langb2014
  • 2016-11-29 18:51:47
  • 10131

python logging模块在多进程多日志文件写入时要注意的问题

python logging模块在多进程多日志文件写入时要注意的问题 项目背景 根据需求,父进程负责创建并维护子进程的数量,具体开启的子进程个数为服务器cpu的核心数。子进程负责从redis任...
  • apple9005
  • apple9005
  • 2018-01-13 21:57:44
  • 303

Python logging 模块简介

Table of Contents 1. Logging 模块1.1. 简介 1.2. 简单输出日志 1.3. 输入日志到文件 1.4. 几个基本概念1.4.1. loggers 1.4.2. han...
  • imnisen1992
  • imnisen1992
  • 2016-11-27 23:56:44
  • 164

python2.7使用logging模块记日志,中文记入后乱码解决办法

python 2.7中使用了logging模块记录日志,发现记录中文的中文是乱码,或者报错。经过网上查找后,解决了。 解决办法就是注意以下三点:  1、Python代码文件开头要加上 :    #...
  • isfirst
  • isfirst
  • 2016-10-11 13:41:54
  • 5340

python常用模块介绍之三:logging模块

 简介:        Python的logging模块提供了通用的日志系统,可以方便第三方模块或者是应用使用。这个模块提供不同的日志级别,并可以采用不同的方式记录日志,比如文件,H...
  • bc_vnetwork
  • bc_vnetwork
  • 2016-09-28 15:12:29
  • 1179

python 日志模块logging学习与使用(日志分割)

在日常项目中,总是需要记录下一些细小信息或者错误码、错误信息的,这个时候就需要进行日志的操作。 python中用于日志创建、设置和记录等功能的模块,就是logging了,下面是对其基本使...
  • u012450329
  • u012450329
  • 2016-11-07 16:51:12
  • 5715

Python logging 模块和使用经验

记录下常用的一些东西,每次用总是查文档有点小麻烦。 py2.7 日志应该是生产应用的重要生命线,谁都不应该掉以轻心 有益原则级别分离日志系统通常有下面几种级别,看情况是使用 FATAL - 导致...
  • lzz957748332
  • lzz957748332
  • 2016-12-27 16:13:00
  • 4038

python将logging模块封装成单独模块并实现动态切换Level

1. 将logging模块的初始化,配置,设置等代码封装到一个模块中,需要使用log功能只需要import这个模块就好了 2. 能根据配置切换logging.level,...
  • long111
  • long111
  • 2016-12-13 17:41:07
  • 638

python logging 遇到的坑 日志重复打印问题的解决方法

python 中 logging模块 假如遇到多线程 或者多进程 或者在web框架中自定义logging的话(一个请求就是一个独立的线程)非常容易重复打印日志 和造成内存崩溃 所以解决方法如下:重写日...
  • Chelydra
  • Chelydra
  • 2018-04-08 12:54:02
  • 60

python logging模块的多文件应用

概述 有的时候需要在一个python程序中生成多个log文件。 本文对logging进一步封装,展示如何在一个程序中使用logging模块打印两个log文件来记录不同类型的信息。 注意loggi...
  • nuptuser
  • nuptuser
  • 2015-11-20 10:09:39
  • 388092
收藏助手
不良信息举报
您举报文章:写一下python的logging模块
举报原因:
原因补充:

(最多只允许输入30个字)