logging模块是专门做日志系统的.分为函数版和自定义函数.

(一)logging模块初级版

缺点,不能指定字符集,不能把屏幕输出和文件日志同时记录。只能选择其一。

文件记录日志

import logging

logging.basicConfig(
level = 30,
filename = "logger.log",
filemode = "a",
format = '%(asctime)s-%(name)s-%(lineno)d-%(message)s', ) logging.warning("这是一个警告")
logging.error("这是一个错误")
logging.critical("这是一个严重错误")

  

屏幕输出日志

import logging

logging.basicConfig(
level = 30,
#filename = "logger.log",
filemode = "a",
format = '%(asctime)s-%(name)s-%(lineno)d-%(message)s', ) logging.warning("这是一个警告")
logging.error("这是一个错误")
logging.critical("这是一个严重错误")

  

(二)logging模块中自定义日志系统

import logging
logger = logging.getLogger()  # 自定义一个模块系统
Formatter = logging.Formatter('%(asctime)s-%(name)s-%(lineno)d-%(message)s') # 定义日志输出格式
ft = logging.FileHandler("logger.log", "a", encoding="utf-8") # 定义文件流
st = logging.StreamHandler() # 定义屏幕流
ft.setFormatter(Formatter) # 将格式加载到文件流中
st.setFormatter(Formatter) # 将格式加载到屏幕流中
logger.addHandler(ft) # 将文件流加载到自定义的loger日志系统中
logger.addHandler(st) # 将屏幕流加载到自定义的loger日志系统中

logger.debug("这是一个debug")
logger.info("这是一个info")
logger.warning("这是一个warning")
logger.error("这是一个error")
logger.critical("这是一个critical") logger.removeHandler(ft) # 将Handler移除,避免下次调用,生成同样的Handler导致重复日志,Eg:第一次输出日志一行,第二次输出同样的两行日志(因为又生成了一个Handler)
# 第三次输出同样的三行日志

常用方法:

import logging

ft = logging.FileHandler("logger.log", "a", encoding="utf-8")  # 定义文件流
Formatter = logging.Formatter('%(asctime)s Username:%(name)s message-%(message)s',datefmt='%Y:%m:%d') # 定义日志输出格式
ft.setFormatter(Formatter) # 将格式加载到文件流中 logger = logging.Logger(name='a',level=logging.DEBUG) # 自定义一个模块系统
logger.addHandler(ft) # 将文件流加载到自定义的loger日志系统中

  

 

  

常见模块(二) logging模块的更多相关文章

  1. 常用模块:os模块,logging模块等

    一    os模块 那么作为一个常用模块,os模块是与操作系统交互的一个模块. 那么os模块中我们常用的一般有以下几种: os.listdir('dirname') 以列表的形式列出指定目录下的所有文 ...

  2. os模块,sys模块,json和pickle模块,logging模块

    目录 OS模块 sys模块 json和pickle模块 序列化和反序列化 json模块 pickle logging模块 OS模块 能与操作系统交互,控制文件 / 文件夹 # 创建文件夹 import ...

  3. 模块讲解---os模块,sys模块,json和pickle模块,logging模块

    目录 模块的用法 os模块 常用的功能 sys模块 常用的功能 json和pickle模块 4. logging模块 模块的用法 通过 import 或者from......import...... ...

  4. 十二 logging模块

    一 日志级别 CRITICAL = 50 #FATAL = CRITICAL ERROR = 40 WARNING = 30 #WARN = WARNING INFO = 20 DEBUG = 10 ...

  5. 模块二 hashlib模块、configparser模块、logging模块

    算法介绍 Python的hashlib提供了常见的摘要算法,如MD5,SHA1等等. 什么是摘要算法呢?摘要算法又称哈希算法.散列算法.它通过一个函数,把任意长度的数据转换为一个长度固定的数据串(通常 ...

  6. Python学习日记(二十八) hashlib模块、configparse模块、logging模块

    hashlib模块 主要提供字符加密算法功能,如md5.sha1.sha224.sha512.sha384等,这里的加密算法称为摘要算法.什么是摘要算法?它又称为哈希算法.散列算法,它通过一个函数把任 ...

  7. Python模块之hashlib模块、logging模块

    一.hashlib模块 hashlib模块介绍:hashlib这个模块提供了摘要算法,例如 MD5.hsa1 摘要算法又称为哈希算法,它是通过一个函数,把任意长度的数据转换为一个长度固定的数据串,这个 ...

  8. 《Python》hashlib模块、configparser模块、logging模块

    一.hashlib模块 Python的hashlib模块中提供了常见的摘要算法,如md5,sha1等等. 摘要算法又称哈希算法.散列算法.它通过一个函数,把任意长度的数据转换为一个长度固定的字符串(通 ...

  9. subprocess模块和logging模块

    主要内容: 一.subprocess模块 二.logging模块 1️⃣  subprocess模块 三种执行命令的方法 subprocess.run(*popenargs, input=None, ...

随机推荐

  1. springmvc多个视图解析器

    <property name="viewResolvers"> <list><!-- 多个视图解析器 --> <bean class=&q ...

  2. 如何设置openwrt在编译linux内核时不优化内核?

    答:修改openwrwt源码目录下rule.mk文件中的HOST_CFLAGS即可 将HOST_CFLAGS:=-O2 $(HOST_CPPFLAGS)改成: HOST_CFLAGS:=-O1 $(H ...

  3. hduoj 1002 A + B Problem II

    原题链接:http://acm.hdu.edu.cn/showproblem.php?pid=1002 题目描述如下: A + B Problem II Time Limit: 2000/1000 M ...

  4. Selenium如何在谷歌浏览器模拟H5页面

    一.基于java语言(转载:http://www.mamicode.com/info-detail-1972340.html) public class runtest { WebDriver dri ...

  5. webpack2与promise在IE环境下

    webpack2好像说是要自己编译es6,但是结果不是很理想,es6的箭头函数他就没有编译,所以目前还是先用babel来转换吧, 之前用的ajax是axios,底层是promise,但是promise ...

  6. 1)selenium+ java集成,待深度项目流程应用

    selenium 1,selenium ide mac 安装 打开firefox浏览器,进入下面网址https://addons.mozilla.org/en-US/firefox/addon/sel ...

  7. @ControllerAdvice + @ExceptionHandler 全局处理 Controller 层异常

    @ControllerAdvice 和 @ExceptionHandler 的区别 ExceptionHandler, 方法注解, 作用于 Controller 级别. ExceptionHandle ...

  8. cookie,session和token的概念以及区别

    cookie: 采用客户端保存状态的方案: cookie的组成:名字,值过去时间,路径以及域: 没有设置时间:随着浏览器的打开和关闭决定: 设置了时间:浏览器就会把cookie保存在硬盘上,根据时间来 ...

  9. centos7系统运行级别简介

    centos7系统运行级别简介我们知道,centos6及之前的版本中,系统运行级别通过/etc/inittab文件进行设置和控制,但在centos7中,对这个文件的设置将不会对系统运行级别产生影响,这 ...

  10. js对象的深拷贝

    关于对象的深拷贝一直是大家津津乐道一个话题,本骚年通过研究(yuedu)发现还是很easy的. 首推的方法简单有效,JSON.stringfy()和JSON.parse()即可搞定.但是这种简单粗暴的 ...