Python学习 :常用模块(三)

常用模块(三)

七、logging模块

日志中包含的信息应有正常的程序访问日志,还可能有错误、警告等信息输出

python的 logging 模块提供了标准的日志接口,你可以通过它存储各种格式的日志,logging 的日志可以分为 debug() , info() , warning() , error() , critical() 5个级别

Eg.简单的日志记录

import logging
logging.debug(‘debug message‘)
logging.info(‘info message‘)
logging.warning(‘warning message‘)
logging.error(‘error message‘)
logging.critical(‘critical message‘)
>>> WARNING:root:warning message
    ERROR:root:error message
    CRITICAL:root:critical message
# 默认情况下logging模块将日志打印到了标准输出中(即屏幕上),且只显示了大于等于WARNING级别的日志
# 默认的日志级别设置为WARNING(日志级别等级 CRITICAL > ERROR > WARNING > INFO > DEBUG > NOTSET)
# 默认的日志格式为日志级别:Logger名称:用户输出消息。

Eg.配置日志的级别,日志格式,输出位置

import logging
logging.basicConfig(level=logging.DEBUG,  # 调整日志开始显示的级别
                    format=‘%(asctime)s %(filename)s[line:%(lineno)d] %(levelname)s %(message)s‘,
                    datefmt=‘%a, %d %b %Y %H:%M:%S‘,
                    filename=‘test.log‘,  # 在当前目录下创建日志记录文件
                    filemode=‘w‘)  # 文件的打开方式为 w
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 对象 :使用 logger 对象,让文件以及屏幕同时输出日志

import logging
logger = logging.getLogger()

# 创建一个handler,用于写入日志文件
fh = logging.FileHandler(‘test.log‘)  # 文件输出流对象
# 再创建一个handler,用于输出到控制台
ch = logging.StreamHandler()  # 标准输出流对象(即屏幕输出)

formatter = logging.Formatter(‘%(asctime)s - %(name)s - %(levelname)s - %(message)s‘)

fh.setFormatter(formatter)  # 取得要输出的标准格式
ch.setFormatter(formatter)  # 取得要输出的标准格式

logger.addHandler(fh)  # logger对象可以添加多个fh和ch对象
logger.addHandler(ch)

logger.setLevel(logging.DEBUG) # 设置日志的级别

# 最后设置日志想要记录的不同信息
logger.debug(‘logger debug message‘)
logger.info(‘logger info message‘)
logger.warning(‘logger warning message‘)
logger.error(‘logger error message‘)
logger.critical(‘logger critical message‘)

原文地址:https://www.cnblogs.com/ArticleYeung/p/9860279.html

时间: 2024-10-08 11:22:13

Python学习 :常用模块(三)的相关文章

python学习- 常用模块与re正则

开发一个简单的python计算器 实现加减乘除及拓号优先级解析 用户输入 1 - 2 * ( (60-30 +(-40/5) * (9-2*5/3 + 7 /3*99/4*2998 +10 * 568/14 )) - (-4*3)/ (16-3*2) )等类似公式后,必须自己解析里面的(),+,-,*,/符号和公式(不能调用eval等类似功能偷懒实现),运算后得出结果,结果必须与真实的计算器所得出的结果一致 1 import sys 2 import re 3 4 def welcome_fun

python学习-常用模块-os,random,logging

os模块(补充中) 1.查看当前路径及切换路径 >>> import os>>> os.getcwd() #获取当前文件所在的路径'D:\\python\\Lib\\idlelib'>>> os.chdir('../') #切换当上一层目录,此处可以是相对路径>>> os.getcwd()'D:\\python\\Lib' >>> os.chdir('D:\Program Files (x86)') #也可以是绝对路

python学习——常用模块

random模块 time模块 sys模块 os模块 取随机数的模块import random #去随机小数:数学计算 import random print(random.random()) #去0~1之间 print(random.uniform(1,2)) # 去范围内的小数 #去随机整数# 应用:彩票,抽奖 import randomprint(random.randint(1,2)) #[1,2]顾头也顾尾 print(random.randrange(1,2)) # [1,2)顾头不

python学习-常用模块8-操作excel,操作写、查、改

一.写excelimport xlwt #只能写excel book = xlwt.Workbook() #创建excelsheet = book.add_sheet('sru_info')#加一个sheet页sheet.write(0,0,'学生编号')sheet.write(0,1,'学生姓名')sheet.write(0,2,'成绩')sheet.write(1,0,'1')sheet.write(1,1,'李广')sheet.write(1,2,'98.2')book.save('stu

Python文件常用的三个变量

1 '''Python文件常用的三个变量 2 __doc__.__name__.__file__ 3 4 __doc__——用来显示文件的注释,文件的注释都是写在文件的开头, 5 以""" doc """标注的内容.可以直接调用.也可以查看其他文件的注释, 6 如导入了一个Queue模块,可以用print Queue.__doc__来查看 7 8 __name__——用来检查是否是主文件的一个重要方法,比如是主动执行的此文件, 9 那么值就是'_

Python学习--Selenium模块学习(2)

Selenium的基本操作 获取浏览器驱动寻找方式 1. 通过手动指定浏览器驱动路径2. 通过 `$PATH`环境变量找寻浏览器驱动 可参考Python学习--Selenium模块简单介绍(1) 控制浏览器访问URL browser.get(https://www.baidu.com/)   find系列函数定位元素 - `find_element_by_xxx` 返回第一个符合条件 `WebElement` - `find_elements_by_xxx` 返回符合条件所有元素包含了`WebE

python学习--创建模块

昨天做了python客户端和服务器端通信,并把接收到的信息写到数据库,因为对数据库进行操作是个经常调用的行为,所以我想把调用数据库的操作写成一个module来给其它python程序调用,所以将昨天的服务器端程序拆分为两个文件: 1.主程序python.py #!/usr/bin/env python import socket import json import connmysql s = socket.socket(socket.AF_INET,socket.SOCK_STREAM,0) h

Python学习系列(三)(字符串)

Python学习系列(三)(字符串) 一个月没有更新博客了,最近工作上有点小忙,实在是没有坚持住,丢久又有感觉写的必要了,可见本人的坚持精神不佳,本系列没有任何目的,纯属业余学习,或者说是一时兴趣所致.通过本文,能够学习字符串的基本操作,日积月累,多多练习,学到了,会用了才是王道. 一.基本概念 1,关于转义问题 1)"''"方式: >>> s="Hello 'Jack'--" >>> print s Hello 'Jack'--

Python学习--Selenium模块

1. Python学习--Selenium模块介绍(1) 2.Python学习--Selenium模块学习(2) 其他: 1. Python学习--打码平台 原文地址:https://www.cnblogs.com/ftl1012/p/seleniumAll.html

python全栈开发【第十一篇】Python常用模块三(hashlib,configparser,logging)

hashlib模块 hashlib提供了常见的摘要算法,如md5和sha1等等. 那么什么是摘要算法呢?摘要算法又称为哈希算法.散列算法.它通过一个函数,把任意长度的数据转换为一个长度固定的数据串(通常用16进制的字符串表示). 注意:摘要算法不是一个解密算法.(摘要算法,检测一个字符串是否发生了变化) 应涂:1.做文件校验 2.登录密码 密码不能解密,但可以撞库,用'加盐'的方法就可以解决撞库的问题.所有以后设置密码的时候要设置的复杂一点. #用户密码 import hashlib # md5