通过python logging.config配置应用程序

Clor的Python项目详细描述


https://img.shields.io/badge/dynamic/json.svg?url=https://api.bitbucket.org/2.0/repositories/saaj/clor/pipelines/?page=1%26pagelen=1%26sort=-created_on%26target.ref_name=default&label=build&query=$.values[0].state.result.name&colorB=bluehttps://badge.fury.io/py/Clor.png

关闭

Clor是logging配置系统[1]的一个小包装,它允许 它可用于一般应用程序配置。这个名字是这样创造的: “配置器”—“c10r”—“clor”。

使用量

通常有一个配置模块(例如envconf.py)或一个YAML文件在这里 是一个樱桃色的例子:

base = {
  'global' : {
    'server.socket_host' : '127.0.0.1',
    'server.socket_port' : 8080,
    'server.thread_pool' : 8
  },
  'app' : {
    'api' : {
      '/' : {
        'request.dispatch' : {
          '()' : 'cherrypy._cpdispatch.MethodDispatcher'
        }
      }
    }
  }
}

production = (base, {
  'global' : {
    'server.socket_host' : '0.0.0.0',
    'server.thread_pool' : 16,
    'tools.auth_basic.on'            : True,
    'tools.auth_basic.realm'         : 'App',
    'tools.auth_basic.checkpassword' : 'ext://someapp.password.checker'
  },
})

development = (base, {
  'global' : {
    'server.thread_pool' : None,
  },
  'app' : {
    'api' : {
      '/' : {
        'tools.response_headers.on'      : True,
        'tools.response_headers.headers' : [('Access-Control-Allow-Origin', '*')]
      }
    },
    'api2' : 'cfg://app.api'
  }
})

一些观察:

  • 嵌套词典递归合并
  • loggingext伪协议
  • loggingcfg伪协议
  • logging使用()键实例化
  • 具有None值的键将被删除

然后在引导代码中可以执行以下操作:

import clor

from . import envconf


config = clor.configure(*getattr(envconf, 'production'))

cherrypy.config.update(config)
cherrypy.tree.mount(ApiApplication(), '/api', config['app']['api'])
[1]https://docs.python.org/3/library/logging.config.html

欢迎加入QQ群-->: 979659372 Python中文网_新手群

推荐PyPI第三方库


热门话题
无JPA的纯Hibernate ORM java SpringBoot配置   安卓会生成一组唯一的java数字   java我的自定义阵列列表每次启动时都会崩溃我不确定为什么会一直崩溃   Java继承;将子类传递给超类的抽象方法   java从没有if语句的数组中获取instanceof type   java中使用对象的温度转换   存储库接口的JavaSpringDataMongoDBeanXML配置   java JAXWS为iBM websphere、iBM web服务客户端添加寻址   数组试图返回Java中两个对象的面积之和   apache Spark java:columnNameOfCorruptRecord和badRecordsPath在加载csv时不工作   java无法创建。txt文件   java Hibernate与MySQL插入查询不一致   不考虑java Hazelcast分布式地图的最大大小   bash Java如何在父进程中设置环境变量