python  模块logging

import logging

###  简单使用格式    日志级别等级CRITICAL > ERROR > WARNING > INFO > DEBUG > NOTSET

  1. logging.debug('debug message') # logging.日志级别('用户输出信息')
  2. logging.info('info message')
  3. logging.warning('warning message')
  4. logging.error('error message')
  5. logging.critical('critical message')

### 配置日志输出

  1. logging.basicConfig(level=logging.DEBUG,
  2. format='%(asctime)s %(filename)s[line:%(lineno)d] %(levelname)s %(message)s',
  3. datefmt='%a, %d %b %Y %H:%M:%S', #输出时间格式
  4. filename='/tmp/test.log',
  5. filemode='w')
  6.  
  7. filename:用指定的文件名创建FiledHandler(后边会具体讲解handler的概念),这样日志会被存储在指定的文件中。
    filemode:文件打开方式,在指定了filename时使用这个参数,默认值为“a”还可指定为“w”。
    format:指定handler使用的日志显示格式。 
    datefmt:指定日期时间格式。 
    level:设置rootlogger(后边会讲解具体概念)的日志级别 
    stream:用指定的stream创建StreamHandler。可以指定输出到sys.stderr,sys.stdout或者文件(f=open('test.log','w')),
    默认为sys.stderr。若同时列出了filenamestream两个参数,则stream参数会被忽略。
  8.  
  9. format参数中可能用到的格式化串:
    %(name)s Logger的名字
    %(levelno)s 数字形式的日志级别
    %(levelname)s 文本形式的日志级别
    %(pathname)s 调用日志输出函数的模块的完整路径名,可能没有
    %(filename)s 调用日志输出函数的模块的文件名
    %(module)s 调用日志输出函数的模块名
    %(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. logger = logging.getLogger() # 创建一个logger对像
  1. fh = logging.FileHandler('test.log') # 创建一个日志文件对象
  2. ch = logging.StreamHandler() # 创建一个输出屏幕对象
  3.  
  4. formatter = logging.Formatter('%(asctime)s - %(name)s - %(levelname)s - %(message)s') # 创建一个格式对象
  5.  
  6. fh.setFormatter(formatter) # 设置日志文件和屏幕输出的对象
  7. ch.setFormatter(formatter)
  8.  
  9. logger.addHandler(fh) #logger对象可以添加多个fh和ch对象
  10. logger.addHandler(ch)
  11.  
  12. logger.debug('logger debug message') # 使用logger对象 写入日志文件和输出到屏幕
  13. logger.info('logger info message')
  14. logger.warning('logger warning message')
  15. logger.error('logger error message')
  16. logger.critical('logger critical message')
  1. #### 修改日志输出的日志等级
    logger.setLevel(logging.DEBUG)
  2.  
  3. ####完整应用代码
  1. import os
  2. import time
  3. import logging
  4. from config import settings
  5.  
  6. def get_logger(card_num, struct_time):
  7.  
  8. if struct_time.tm_mday < 23:
  9. file_name = "%s_%s_%d" %(struct_time.tm_year, struct_time.tm_mon, 22)
  10. else:
  11. file_name = "%s_%s_%d" %(struct_time.tm_year, struct_time.tm_mon+1, 22)
  12.  
  13. file_handler = logging.FileHandler(
  14. os.path.join(settings.USER_DIR_FOLDER, card_num, 'record', file_name),
  15. encoding='utf-8'
  16. )
  17. fmt = logging.Formatter(fmt="%(asctime)s : %(message)s")
  18. file_handler.setFormatter(fmt)
  19.  
  20. logger1 = logging.Logger('user_logger', level=logging.INFO)
  21. logger1.addHandler(file_handler)
  22. return logger1
  23.  
  24. logger=get_logger() # 调用get_logger函数生成一个配置好的logger对象
    logger.info('spent %s '%x) # 写日志

  

  1.  

python 模块之-logging的更多相关文章

  1. python初步学习-python模块之 logging

    logging 许多应用程序中都会有日志模块,用于记录系统在运行过程中的一些关键信息,以便于对系统的运行状况进行跟踪.在python中,我们不需要第三方的日志组件,python为我们提供了简单易用.且 ...

  2. Python模块学习 ---- logging 日志记录

    许多应用程序中都会有日志模块,用于记录系统在运行过程中的一些关键信息,以便于对系统的运行状况进行跟踪.在.NET平台中,有非常著名的第三方开源日志组件log4net,c++中,有人们熟悉的log4cp ...

  3. Python 模块之Logging——常用handlers的使用

    一.StreamHandler 流handler——包含在logging模块中的三个handler之一. 能够将日志信息输出到sys.stdout, sys.stderr 或者类文件对象(更确切点,就 ...

  4. python模块之logging

    在现实生活中,记录日志非常重要.银行转账时会有转账记录:飞机飞行过程中,会有黑盒子(飞行数据记录器)记录飞行过程中的一切.如果有出现什么问题,人们可以通过日志数据来搞清楚到底发生了什么.对于系统开发. ...

  5. Python模块之 - logging

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

  6. 【python模块】——logging

    python学习——logging模块

  7. Python模块:logging、

    logging模块: 很多程序都有记录日志的需求,并且日志中包含的信息既有正常的程序访问日志,还可能有错误.警告等信息输出.Python的logging模块提供了标准的日志接口,你可以通过它存储各种格 ...

  8. python模块学习 logging

    1.简单的将日志打印到屏幕 import logging logging.debug('This is debug message') logging.info('This is info messa ...

  9. python模块:logging

    # Copyright 2001-2016 by Vinay Sajip. All Rights Reserved. # # Permission to use, copy, modify, and ...

随机推荐

  1. Android java.lang.RuntimeException: Unable to instantiate activity ComponentInfo 特殊异常

    本来是不想写的,因为这个异常太常见了,而且也容易处理.但是还是决定记录一下,因为之前遇到过,没留心,今天又遇到了,苦逼了,想了好大一会儿才想起来. 通常容易找的就不写了,今天写个特殊的. 现象:当你在 ...

  2. Android TimeAnimator && TimeListener翻译

    TimeAnimator:提供了一个简单的回调机制,通过 TimeAnimator.TimeListener,在动画的每一帧处通知你.这个动画器没有时间,插值或是对象值设定.回调监听器为每一帧动画接受 ...

  3. sql实时提交事务

    public void deleteByHbtlidAndDept(String class_id,String depart_id) { Session session = this.getHibe ...

  4. LINQ Group By操作(转载)

    假设我们需要从两张表中统计出热门商圈,这两张表内容如下: 上表是所有政区,商圈中的餐饮个数,名为FoodDistrict 下表是所有政区,商圈中的SPA个数,名为SPADistrict 现在要把这两张 ...

  5. Luogu3959 NOIP2017 宝藏 状压DP

    题目传送门:https://www.luogu.org/problemnew/show/P3959 题意:给出一个有$N$个点的图,求其中的一个生成树(指定一个点为根),使得$\sum\limits_ ...

  6. mysql 自增长

    auto_increment_increment=10;      #自增量每次增加的值改为10, auto_increment_offset=2;             #第一次加载数值时的偏移值 ...

  7. TensorFlow框架下的RNN实践小结

    截至目前,TensorFlow的RNN APIs还处于Draft阶段.不过据官方解释,RNN的相关API已经出现在Tutorials里了,大幅度的改动应该是不大可能,现在入手TF的RNN APIs风险 ...

  8. bootstrap datetimepicker 格式化yyyymmdd时,无法读取yyyymmdd格式

    不知为何,java程序员爱用yyyymmdd格式化日期?导致bootstrap datetimepicker无法解析正确的日期 发现js中yyyymmdd不是正常能够解析的日期 查看datetimep ...

  9. pyenv+virtual 笔记

    Pyenv + virtualEnv 设置 安装这两个组件是为了适应不同版本的python在同一个系统下的运行:例如现在最明显就是python2.7和python3.6的两个版本,很多库依旧是使用了P ...

  10. python基础学习笔记(十二)

    模块 前面有简单介绍如何使用import从外部模块获取函数并且为自己的程序所用: >>> import math >>> math.sin(0) #sin为正弦函数 ...