包,日志字典

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‘
},
},
}


 

















































以上是关于包,日志字典的主要内容,如果未能解决你的问题,请参考以下文章

常用python日期日志获取内容循环的代码片段

13 个非常有用的 Python 代码片段

Python snippet(代码片段)

Python代码阅读(第19篇):合并多个字典

Python代码阅读(第26篇):将列表映射成字典

我的Android进阶之旅NDK开发之在C++代码中使用Android Log打印日志,打印出C++的函数耗时以及代码片段耗时详情