python基础------模块
Posted
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了python基础------模块相关的知识,希望对你有一定的参考价值。
一,日志模块:logging
1 #简单应用
2 import logging
3 logging.debug("hello python")
4 logging.info("hello world")
5 logging.warning("hello java") #日志级别默认WARNUNG 只显示warning一下的,上面的debug,info没打印出来
6 logging.error("hello C")
7 logging.critical("hello C++")
8
9 #打印结果:
10 #WARNING:root:hello java
11 #ERROR:root:hello C
12 #CRITICAL:root:hello C++
13 #
日志的等级从下到上:critical-->error-->warning-->info-->debug
2,灵活设置日志等级,位置,日志格式
1 import logging
2 #日志等级设置成debug
3 logging.basicConfig(level=logging.DEBUG, #日志等级设置成debug
4 format="%(asctime)s %(filename)s %(levelname)s %(message)s",
5 filename = "test.txt", #设置文件名
6 filemode = "w", #以w模式写入内容
7 )
8 logging.debug("debug message")
9 logging.info("info message")
10 logging.warning("warning message")
11 logging.error("error message")
12 logging.critical("critical message")
2.1 test.txt文件中的内容:
2017-04-27 19:29:49,808 logging模块.py DEBUG debug message
2017-04-27 19:29:49,825 logging模块.py INFO info message
2017-04-27 19:29:49,826 logging模块.py WARNING warning message
2017-04-27 19:29:49,826 logging模块.py ERROR error message
2017-04-27 19:29:49,826 logging模块.py CRITICAL critical message
2.2 format中可能用到的格式化串
1 ‘‘‘
2
3 %(name)s Logger的名字
4 %(levelno)s 数字形式的日志级别
5 %(levelname)s 文本形式的日志级别
6 %(pathname)s 调用日志输出函数的模块的完整路径名,可能没有
7 %(filename)s 调用日志输出函数的模块的文件名
8 %(module)s 调用日志输出函数的模块名
9 %(funcName)s 调用日志输出函数的函数名
10 %(lineno)d 调用日志输出函数的语句所在的代码行
11 %(created)f 当前时间,用UNIX标准的表示时间的浮 点数表示
12 %(relativeCreated)d 输出日志信息时的,自Logger创建以 来的毫秒数
13 %(asctime)s 字符串形式的当前时间。默认格式是 “2003-07-08 16:49:45,896”。逗号后面的是毫秒
14 %(thread)d 线程ID。可能没有
15 %(threadName)s 线程名。可能没有
16 %(process)d 进程ID。可能没有
17 %(message)s用户输出的消息
18 ‘‘‘
2.3 logger对象方法:推荐用法
1 import logging
2 #日志模块
3 def get_logger():
4 logger = logging.getLogger() #获得一个logger对象
5
6 fh = logging.FileHandler("a.txt") # 创建一个文件流,需要给一个文件参数
7
8 sh = logging.StreamHandler() #创建一个屏幕流,
9
10 logger.setLevel(logging.DEBUG) #设定最低等级debug
11 #写入文件的中的格式
12 fm = logging.Formatter("%(asctime)s - %(name)s - %(levelname)s - %(message)s")
13
14 logger.addHandler(fh)#把文件流添加进来,流向文件
15 logger.addHandler(sh) #把屏幕流添加进来,流向屏幕
16
17 fh.setFormatter(fm) #在文件流添加写入格式
18 sh.setFormatter(fm) #在屏幕流添加写入格式
19
20 return logger
21
22 logger = get_logger()
23 logger.debug("hello world")
24 logger.info("world python")
25 logger.warning("hello java")
26 logger.error("python C")
27 logger.critical("hello C++")
2.3 a.txt文件中内容
1 #内容都是一样的,只是两个流派都弄出来了
2
3 #屏幕上的内容:
4 2017-04-27 19:57:38,336 - root - DEBUG - hello world
5 2017-04-27 19:57:38,337 - root - INFO - world python
6 2017-04-27 19:57:38,337 - root - WARNING - hello java
7 2017-04-27 19:57:38,337 - root - ERROR - python C
8 2017-04-27 19:57:38,338 - root - CRITICAL - hello C++
9
10
11 #文件中的内容:
12 2017-04-27 19:57:38,336 - root - DEBUG - hello world
13 2017-04-27 19:57:38,337 - root - INFO - world python
14 2017-04-27 19:57:38,337 - root - WARNING - hello java
15 2017-04-27 19:57:38,337 - root - ERROR - python C
16 2017-04-27 19:57:38,338 - root - CRITICAL - hello C++
二:序列化模块:json 重要
以上是关于python基础------模块的主要内容,如果未能解决你的问题,请参考以下文章