包,日志字典
Posted fushaunglin
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了包,日志字典相关的知识,希望对你有一定的参考价值。
包:
包是一种通过.模块名来组织模块名称空间的方式
包就是一种含有__init__.py文件的文件夹,我们创建包的目的就是用文件夹将文件/模块组织起来
在python3中即使没有__init__.py import也不会报错,在python2中没有__init.py就会报错
包可以提高程序的结构性和可维护性
在导入时不管是import 还是from import .的左边必须是包,否则会报错
而在使用时则没有限制
绝对导入与相对导入 # 绝对导入: 以执行文件的sys.path为起始点开始导入,称之为绝对导入 # 优点: 执行文件与被导入的模块中都可以使用 # 缺点: 所有导入都是以sys.path为起始点,导入麻烦 # 相对导入: 参照当前所在文件的文件夹为起始开始查找,称之为相对导入 # 符号: .代表当前所在文件的文件加,..代表上一级文件夹,...代表上一级的上一级文件夹 # 优点: 导入更加简单 # 缺点: 只能在导入包中的模块时才能使用 #注意: 1. 相对导入只能用于包内部模块之间的相互导入,导入者与被导入者都必须存在于一个包内 2. attempted relative import beyond top-level package # 试图在顶级包之外使用相对导入是错误的,言外之意,必须在顶级包内使用相对导入,每增加一个.代表跳到上一级文件夹,而上一级不应该超出顶级包
import os
#日志相关的配置
BASE_DIR=os.path.dirname(os.path.dirname(__file__))
standard_format=‘%(asctime)s-task%(name)s-%(filename)s-%(lineno)d‘
‘%(levelname)s-%(message)s‘
simple_format=‘%(filename)s-%(lineno)d-%(levelname)s-%(message)s‘
fh1_path=os.path.join(BASE_DIR,‘log‘,‘a1.log‘)
fh2_path=os.path.join(BASE_DIR,‘log‘,‘a2.log‘)
#log配置字典
LOGGING_DIC={
‘version‘:1,
‘disable_existing_loggers‘:False,
‘formatters‘:{
‘standard‘:{
‘format‘:standard_format
},
‘simple‘:{
‘format‘:simple_format
}
},
‘filters‘:{},
‘handlers‘:{
#打印到终端的日志
‘ch‘:{
‘level‘:‘DEBUG‘,
‘class‘:‘logging.StreamHandler‘,#打印到终端,
‘formatter‘:‘simple‘
},
#打印到a1.log文件的日志
‘fh1‘:{
‘level‘:‘DEBUG‘,
‘class‘:‘logging.FileHandler‘,#保存到文件
‘formatter‘:‘standard‘,
‘filename‘:fh1_path,#日志文件的路径
‘encoding‘:‘utf-8‘#日志文件的编码
},
},
‘loggers‘:{
‘‘:{
‘handlers‘:[‘fh1‘,‘fh2‘,‘ch‘],
‘level‘:‘DEBUG‘
},
},
}
以上是关于包,日志字典的主要内容,如果未能解决你的问题,请参考以下文章
我的Android进阶之旅NDK开发之在C++代码中使用Android Log打印日志,打印出C++的函数耗时以及代码片段耗时详情