Python标准库之logging模块

很多程序都有记录日志的需求,并且日志中包含的信息即有正常的程序访问日志,还可能有错误、警告等信息输出,python的logging模块提供了标准的日志接口,你可以通过它存储各种格式的日志,logging的日志可以分为 debug()、info()、warning()、 error() 、critical() 5个级别。

import logging
logging.debug("debug message")logging.info("Input user/passwd")logging.error("Error")logging.warning("User already inputed three time username/password!")logging.critical("The username was locking!")

  

日志级别

把日志写到文件

其中下面这句中的level=loggin.DEBUG意思是,把日志纪录级别设置为DEBUG,也就是说,只有比日志是DEBUG或比DEBUG级别更高的日志才会被记录到文件里

import logging

logging.basicConfig(filename="tesxt.log",level=logging.DEBUG)
logging.debug("debug message")
logging.info("Input user/passwd")
logging.error("Error")
logging.warning("User already inputed three time username/password!")
logging.critical("The username was locking!")

  

输出结果:

给日志增加时间

import logging

logging.basicConfig(format=‘%(asctime)s %(message)s‘, datefmt=‘%m/%d/%Y %I:%M:%S %p‘)
logging.debug("debug message")
logging.info("Input user/passwd")
logging.error("Error")
logging.warning("User already inputed three time username/password!")
logging.critical("The username was locking!")

  

日志格式


%(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


用户输出的消息

把日志打印在屏幕上

import logging

#create logger
logger = logging.getLogger(‘TEST-LOG‘)
logger.setLevel(logging.DEBUG)

# create console handler and set level to debug
ch = logging.StreamHandler()
ch.setLevel(logging.DEBUG)

# create file handler and set level to warning
fh = logging.FileHandler("access.log")
fh.setLevel(logging.WARNING)
# create formatter
formatter = logging.Formatter(‘%(asctime)s - %(name)s - %(levelname)s - %(message)s‘)

# add formatter to ch and fh
ch.setFormatter(formatter)
fh.setFormatter(formatter)

# add ch and fh to logger
logger.addHandler(ch)
logger.addHandler(fh)

# ‘application‘ code
logger.debug(‘debug message‘)
logger.info(‘info message‘)
logger.warn(‘warn message‘)
logger.error(‘error message‘)
logger.critical(‘critical message‘)

  

原文地址:https://www.cnblogs.com/endust/p/12312799.html

时间: 2024-11-05 17:29:02

Python标准库之logging模块的相关文章

Python标准库之collections模块

本文后大家啊分享的主要是python 标准库的collections 模块,一起来看看吧,希望对大家 学习python有所帮助.. 这个模块提供几个非常有用的Python 容器类型 1.容器 2.OrderedDict OrderedDict  类似于正常的词典,只是它记住了元素插入的顺序,当迭代它时,返回它会根据插入的顺序返回. ·  和正常字典相比 , 它是 " 有序 " 的 ( 插入的顺序 ) . from collections import OrderedDict dict1

Python标准库之os模块

1.删除和重命名文件 import os import string def replace(file, search_for, replace_with): # replace strings in a text file back = os.path.splitext(file)[0] + ".bak" (1) temp = os.path.splitext(file)[0] + ".tmp" try: # remove old temp file, if an

Python标准库系列之模块默认全局变量

当我们创建了一个自己写的模块后,那么这个模块本身就自带了好几个全局变量,这些全局变量在每个文件中都存在. 查看当前py文件的全局变量 [[email protected] ~]# echo 'print(vars())' > scripts.py       [[email protected] ~]# python scripts.py  {'__builtins__': <module '__builtin__' (built-in)>, '__name__': '__main__'

python标准库:datetime模块

原文地址:http://www.bugingcode.com/blog/python_datetime.html datatime 模块题共用一些处理日期,时间和时间间隔的函数.这个模块使用面向对象的交互取代了time模块中整形/元组类型的时间函数. 在这个模块中的所有类型都是新型类,能够从python中继承和扩展. 这个模块包含如下的类型: datetime代表了日期和一天的时间 date代表日期,在1到9999之间 time 代表时间和独立日期. timedelta 代表两个时间或者日期的间

python标准库之random模块

Python中的random模块用于生成随机数. 下面具体介绍random模块的功能: 1.random.random() #用于生成一个0到1的 随机浮点数:0<= n < 1.0 1 import random 2 a = random.random() 3 print (a) 2.random.uniform(a,b) #用于生成一个指定范围内的随机符点数,两个参数其中一个是上限,一个是下限.如果a > b,则生成的随机数n: a <= n <= b.如果 a <

Python标准库之sys模块

获取Python解释器的版本信息 import sys print(sys.version) #输出 3.6.5 (v3.6.5:f59c0932b4, Mar 28 2018, 17:00:18) [MSC v.1900 64 bit (AMD64)] 获取命令行参数 import sys print(sys.argv) #命令行模式 C:\Users\admin\PycharmProjects\module>python main.py admin passwd ['main.py', 'a

Python标准库之shelve模块(序列化与反序列化)

shelve模块是一个简单的key,value将内存数据通过文件持久化的模块,可以持久化任何picklel可支持的Python数据格式. 序列化 序列化源代码: import shelve import os f = shelve.open("shelve_log") d = {'1':'a','2':'b'} def test(): return os.system("calc") f['dict'] = d f['func'] = test f.close()

2. Python标准库urllib.request模块_2(python3)

参考学习地址:http://www.iplaypython.com # coding:utf-8 # 学习1 import urllib.request # print(dir(html)) # 获取网页所在的header信息 url="http://www.iplaypython.com/" html=urllib.request.urlopen(url) # 获取网站返回的状态码 code = html.getcode() print("返回的状态码: %s"

python标准库之sys模块 学习

通过这节学习来知道如何在linux下执行python代码 sys是system的缩写,用来获取操作系统和编译器的一些配置,设置及操作 我们要充分的理解他最好是在linux的环境下进行测试 sys.argv[0] ,返回的是代码所在文件的路径 [[email protected] ~]$ vi test.py [[email protected] ~]$ python3 test.py test.py [[email protected] ~]$ cat test.py import sys pr