包

1.什么是包?

         包是模块的一种形式,包的本质就是一个含有__init__.py文件的文件夹

 

2.为什么要有包?

         提高程序的结构性和可维护性

 

3.如何使用包?

         导入包就是在导包下的__init__.py

         方法:import……

                    from …… import……

 

         主要的问题:

                  1.包内所有的文件都是被导入使用的,而不是被直接运行的

                  2.包内部模块之间的导入可以使用绝对导入(以包的根目录为基准)与相对导入(以当前被导入模块所在的目录为基准),推荐使用相对导入

                  3.当前文件是执行文件时,无法在该文件内使用相对导入的语法

                    只有在文件被当作模块导入时,该文件内才能使用相对导入的语法

                  4.凡是在导入时带点的,点的左边都必须是一个包

 

logging模块

logging的五个日志级别:

         import logging

         logging.debug('调试debug')

         logging.info('消息info')

         logging.warning('警告warn')

         logging.error('错误error')

         logging.critical('严重critical')

 

格式:

%(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:用户输出的消息

logging模块的四个对象:

         logger:产生日志的对象

         filter:过滤日志的对象

         Handler:接收日志然后控制打印到不同的地方:

                  FileHandler用来打印到文件中

                  StreamHandler用来打印到终端

         formatter对象:可以定制不同的日志格式对象,然后绑定给不同的Handler对象使用,以此来控制不同的Handler的日志格式
原文地址:https://www.cnblogs.com/fxc-520520/p/9201540.html