【问题标题】:Can logging and CherryPy share the same config file?日志记录和 CherryPy 可以共享同一个配置文件吗?
【发布时间】:2010-09-14 14:53:13
【问题描述】:

Python logging moduleCherryPy's Config API 都使用 ConfigParser 文件。因此,我假设我可以将一个配置文件用于我自己的应用程序配置,即日志记录配置和 CherryPy 的配置。

当我的日志记录和 CherryPy 分开时,它们运行良好,并且我的配置文件使用 ConfigParser api 解析时没有错误。然而,CherryPy 似乎在这部分吐槽:

[loggers]
keys=root,myapp,cherrypy,cperror,cpaccess

给出以下例外:

Traceback (most recent call last):
  File "/usr/lib/python2.6/multiprocessing/process.py", line 232, in _bootstrap
    self.run()
  File "/usr/lib/python2.6/multiprocessing/process.py", line 88, in run
    self._target(*self._args, **self._kwargs)
  File "unittests.py", line 431, in main
    cherrypy.config.update(server.CONFIG_FILE)
  File "/usr/lib/pymodules/python2.6/cherrypy/_cpconfig.py", line 263, in update
    config = _Parser().dict_from_file(config)
  File "/usr/lib/pymodules/python2.6/cherrypy/_cpconfig.py", line 383, in dict_from_file
    return self.as_dict()
  File "/usr/lib/pymodules/python2.6/cherrypy/_cpconfig.py", line 374, in as_dict
    raise ValueError(msg, x.__class__.__name__, x.args)
ValueError: ("Config error in section: 'loggers', option: 'keys', value: 'root,myapp,cherrypy,cperror,cpaccess'. Config values must be valid Python.", 'TypeError', ("unrepr could not resolve the name 'root'",))

CherryPy 文档从未说过 CherryPy 需要将其配置文件与您的其他配置分开,但我开始认为这可能是必要的。文档说,如果每个站点有多个应用程序,则站点和应用程序配置可能需要分开,但 似乎 是一个不同的问题......它是否将我的日志配置误认为是 CherryPy 应用程序配置?

这可能吗?如果不是,那么我不确定为什么 CherryPy 甚至会首先使用 ConfigParser 库。

【问题讨论】:

    标签: python logging cherrypy configparser


    【解决方案1】:

    简短回答:不,您可能无法混合使用它们。如docs 中所述:“配置条目始终是键/值对,例如 server.socket_port = 8080。键始终是名称,值始终是 Python 对象。也就是说,如果您是setting是一个int(或其他数字),它需要看起来像一个Python int;例如,8080。如果值是一个字符串,它需要被引用,就像一个Python字符串一样。”

    尽管我们希望在 CherryPy 配置值中使用任意 Python 类型,但 CherryPy 使用 ConfigParser 仅仅是因为我们不想为节和条目语法编写自己的解析器。

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 2010-09-22
      • 1970-01-01
      • 2011-12-29
      • 1970-01-01
      • 1970-01-01
      • 2020-01-03
      • 2012-09-22
      相关资源
      最近更新 更多