日志级别

日志级别  critical > error > warning > info > debug, 默认是从warning开始打印

import logging

# 日志级别  critical > error > warning > info > debug
logging.debug('hello world')
logging.info('hello world')
logging.warning('hello world')
logging.error('hello world')
logging.critical('hello world')

日志的配置

配置的 basicConfig文件只能输出到文件中,但是配合stream参数可以达到屏幕/文件均输出的效果

默认追加模式

默认是输出到屏幕,有filename则输出到文件

直接用logging配置
import logging
# 配置的 basicConfig文件只能输出到文件中,但是配合stream参数可以达到屏幕/文件均输出的效果
logging.basicConfig(level=logging.DEBUG, ormat='%(asctime)s %(filename)s[line:%(lineno)d] %(levelname)s %(message)s',
datefmt='%a, %d %b %Y %H:%M:%S',
#stream 输出的流
filename='test.log', # 默认是输出到屏幕,有filename则输出到文件
filemode='a') # 默认追加模式 logging.debug('debug message')
logging.info('info message')
logging.warning('warning message')
logging.error('error message')
logging.critical('critical message')
 

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

logger对象:可以文件打印,也可以屏幕输出

import logging
# 创建了一个logger对象,并且命名为
log = logging.Logger('user_logger', level=logging.INFO)
# 更改日志级别,默认是warning级别
# log.setLevel(logging.DEBUG)
# 文件输出对象
log_txt = logging.FileHandler('log.log')
# 屏幕输出对象
log_str = logging.StreamHandler()
log_format = logging.Formatter('%(asctime)s - %(name)s - %(levelname)s -[line:%(lineno)d]- %(message)s')
# 屏幕输出
log_str.setFormatter(log_format)
# 文件输出
log_txt.setFormatter(log_format) # log 对象添加屏幕输出
log.addHandler(log_str)
# log 对象添加文件输出
log.addHandler(log_txt)
# 输出内容,默认warning以上的log都可以打印
log.debug('log debug message')
log.info('log info message')
log.warning('log warning message')
log.error('log error message')
log.critical('log critical message')

Python学习---重点模块之logging的更多相关文章

  1. Python学习---重点模块的学习【all】

    time     [时间模块] import time # print(help(time)) # time模块的帮助 print(time.time()) # 时间戳 print(time.cloc ...

  2. Python学习---重点模块之re

    正则表达式是用来操作字符串,但是字符串提供的正则是完全匹配,有时候我们需要进行模糊匹配,这个时候就需要正则表达式了.通过re模块来实现,由C语言来执行底层的匹配 字符匹配(普通字符,元字符): 1 普 ...

  3. Python学习---重点模块之subprocess

    subprocess是用来执行系统程序,查看系统的模块, 查看当前目录 第一种方法: import subprocess # subprocess会单独自己开辟一个线程,内部是多线程 # stdout ...

  4. Python学习---重点模块之configparse

    configparse模块常用于生成和修改常见的配置文档 生成配置模块:用字典写 import configparser config = configparser.ConfigParser() co ...

  5. Python学习---重点模块之json

    注意:JSON不能转换类,不能转换函数 重点方法示例 json.dumps():实现文件写入,字符串转换[写入文件当然是JSON字符串楼] 实际上,json.dumps()只是帮我们做了一个字符串的转 ...

  6. Python学习---重点模块之pickle

    仅仅支持Python里面的函数等相关功能的实现,而且pickle写入的内容是看不出来的,读取的时候要求有原内容 pickled的写入: import pickle def fun(): print(' ...

  7. Python学习---重点模块之shelve

    简单示例 import shelve f = shelve.open(r'shelve.txt') f['info'] = {'name':'ftl', 'age':23, 'sex': 'male' ...

  8. Python学习---重点模块之xml

    xml是实现不同语言或程序之间进行数据交换的协议,跟json差不多,但json使用起来更简单 数据准备 <?xml version="1.0"?> <data&g ...

  9. Python学习--Selenium模块

    1. Python学习--Selenium模块介绍(1) 2.Python学习--Selenium模块学习(2) 其他: 1. Python学习--打码平台

随机推荐

  1. unity 渲染第一步

    unity 不是将宇宙投影到水晶球里,而是:将整个 view frustum 投影成 一个 cube .------ <unity 渲染箴言> 观察一下,整个 view frustum 以 ...

  2. MySQL插入记录 insert

    一.insert insert tb_name [(col_name,......)] {values | value} ({expr | default } ....... ) , ( ... ) ...

  3. C# 实现IP视频监控(摄像头)画面推送(简单的不能再简单的DEMO)

    最近继续在家休息,在完成上一个Python抓取某音乐网站爬虫后,琢磨着实现一个基于HTTP推送的 IP视频监控,比如外出的时候,在家里 开启一个监控端(摄像头+服务端),可以看到实时画面,如果再加上自 ...

  4. log4j DailyRollingFileAppender, DatePattern 配置

    在DailyRollingFileAppender中可以指定monthly(每月). weekly(每周).daily(每天).half-daily(每半天).hourly(每小时)和minutely ...

  5. Python基础(8) - 模块

    Python 模块的物理形式就是文件:一个文件对应一个模块.文件名就是模块名+.py 模块定义了自己独有的命名空间.在其定义的属性,函数,类都隶属于该空间. 通过import关键字我们可以导入模块: ...

  6. 【c++】常识易混提示

    1. struct 和 class 唯一的区别:默认的成员保护级别和默认的派生保护级别不同(前者为public,后者为private). 2. int *p = new int[23];     de ...

  7. How to Install Eclipse C/C++ Development Tool--转

    http://www3.ntu.edu.sg/home/ehchua/programming/howto/EclipseCpp_HowTo.html Eclipse 4.3 (Kepler) for ...

  8. 搭建简单FTP

    搭建简单FTP 环境 CentOS 7 安装 yum install vsftpd 修改配置文件, 在/etc/vsftpd/vsftpd.conf中添加allow_writeable_chroot= ...

  9. Swift可选链

    //可选链测试 class Person{ var residence:Residence! var name:String init(name:String){ self.name = name } ...

  10. K2.ActivityInstanceDestination.User is NULL

    his one caught me by surprise! I needed to build up a CSV list of email addresses for all previous t ...