Skip to main content

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

项目描述

PyPI - 许可证 管道状态 测试代码覆盖率 派皮

克洛尔

Clor 是日志配置系统[ 1 ]的一个小型包装器,允许将其重用于一般应用程序配置。这个名字是这样创造的:“configurator”→“c10r”→“clor”。

用法

通常有一个配置模块(例如envconf.py)或一个 YAML 文件。这是一个 CherryPy 示例:

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伪协议

  • 使用()记录的实例化

  • 具有None值的键被删除

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

import clor

from . import envconf


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

cherrypy.config.update(config)
cherrypy.tree.mount(ApiApplication(), '/api', config['app']['api'])

下载文件

下载适用于您平台的文件。如果您不确定要选择哪个,请了解有关安装包的更多信息。

源分布

Clor-0.4.0.tar.gz (4.8 kB 查看哈希)

已上传 source