python包以及logging日记
1、包
包:文件夹下具备__init__.py文件就是一个包,包用来治理多个模块
包的构造以下:
bake ├── __init__.py ├── api ├── __init__.py ├── policy.py └── versions.py ├── cmd ├── __init__.py └── manage.py └── db ├── __init__.py └── models.py
正在bake的同级创立一个test.py导入policy.py:
import bake.api.policy bake.api.policy.get() #导入的名字过长了,能够起别号 import bake.api.policy as p p.get() #from 导入正在__init__.py修正 from . import policy #咱们需求正在policy文件中向sys.path增加了以后的门路 import os import sys sys.path.insert(os.path.dirname(__file__)) #print(__file__)查看一下 #应用__all__,正在__init__.py中 __all__ = ["policy"] #或 from . import policy
总结:
import 包.包.包
from 包.包.包 import 模块
门路:
相对:从正在外层开端导入
绝对:从以后开端(.)导入或许从父级(..)导入
应用绝对门路时必需正在包的最外层且同级
from 包 import *
需求正在__init__.py做操作
python2:import文件夹(不__init__.py)会报错
python3:import文件夹(不__init__.py)没有会报错
相干保举:《Python视频教程》
2、logging模块
logging模块用于记载软件的各类状态,买卖记载,谬误记载,登录记载……
1.函数式简略设置装备摆设:
import logging logging.debug('debug message') logging.info('info message') logging.warning('warning message') logging.error('error message') logging.critical('critical message')
默许状况下python的logging模块将日记打印到了规范输入中,且只显示了年夜于等于WARNING级此外日记,证实默许的级别为WARNING
日记级别:CRITICAL > ERROR > WARNING > INFO > DEBUG
2.灵敏设置装备摆设日记级别,日记模式,输出地位(低配版)
只能写入日记,不克不及公屏输入
import logging logging.basicConfig(level = logging.DEBUG, format = '%(astime)s %(filename)s [line:%(lineno)d] %(levelname)s %(message)s', datefmt = '%Y-%m-%d %H:%M:%S', filename = 'test.log', filemode = 'a') dic = {"key":123} logging.debug(dic) num = 100 logging.info(f"用户余额:{num - 50}") try: num = int(input("请输出数字:")) except Exception as e: logging.warning("e") logging.error('error message') logging.critical('critical message')
basicConfig()函数中可经过详细参数来更改logging模块默许行为,可用参数有:
filename:用指定的文件名创立FiledHandler,这样日记会被存储正在指定的文件中。
filemode:文件关上形式,正在指定了filename时应用这个参数,默许值为“a”还可指定为“w”。
format:指定handler应用的日记显示格局。
datefmt:指定日期工夫格局。
level:设置记载日记的级别
stream:用指定的stream创立StreamHandler。能够指定输入到
sys.stderr,sys.stdout或许文件(f=open(‘test.log’,’w’)),默许为sys.stderr。若同时列出了filename以及stream两个参数,则stream参数会被疏忽。
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用户输入的音讯
3.logger工具设置装备摆设(中配版)
import logging logger = logging.getLogger() # 创立一个logger fh = logging.FileHandler('test.log',mode="a",encoding='utf-8') # 文件 ch = logging.StreamHandler() # 屏幕 formatter = logging.Formatter('%(asctime)s - %(name)s - %(filename)s - [line:%(lineno)d] - %(levelname)s - %(message)s') # 将屏幕以及文件都是用以上格局 logger.setLevel(logging.DEBUG) # 设置记载级别 fh.setFormatter(formatter) # 应用自界说的格局化内容 ch.setFormatter(formatter) logger.addHandler(fh) #logger工具能够增加多个fh以及ch工具 logger.addHandler(ch) 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')
以上就是python包以及logging日记的相干引见的具体内容,更多请存眷资源魔其它相干文章!
标签: Python 日志 python教程 python编程 python使用问题 包 logging
抱歉,评论功能暂时关闭!