从版本4开始,默认情况下Zope通过WSGI提供。使用mkwsgiinstance命令创建的实例在运行时不会创建日志文件。
如何在ZServer中为WSGI启用日志记录?
我在Zope 4文档中发现了这一点:“runwsgi命令将PasteDeploy配置文件作为其参数。您可以在此文件中配置不同的支持WSGI的服务器,WSGI管道或日志记录配置。”
所以我想我的问题应该是具体的:如何在Zope(服务员)中为zope.ini配置默认WSGI服务器的日志记录?
这是一个zope.ini,适用于Zope 4(服务员)中的默认WSGI服务器。与ZServer一样,它在实例的日志目录中创建访问日志(Z4.log)和事件日志(event.log)。
[app:zope]
use = egg:Zope#main
zope_conf = %(here)s/wsgi.conf
[server:main]
use = egg:waitress#main
host = 127.0.0.1
port = 8080
[filter:translogger]
use = egg:Paste#translogger
setup_console_handler = False
[pipeline:main]
pipeline =
egg:Zope#httpexceptions
translogger
zope
[loggers]
keys = root, waitress, wsgi
[handlers]
keys = console, accesslog, eventlog
[formatters]
keys = generic, message
[formatter_generic]
format = %(asctime)s %(levelname)-5.5s [%(name)s:%(lineno)s][%(threadName)s] %(message)s
datefmt = %Y-%m-%d %H:%M:%S
[formatter_message]
format = %(message)s
[logger_root]
level = INFO
handlers = console
[logger_waitress]
level = INFO
handlers = eventlog
qualname = waitress
[logger_wsgi]
level = WARN
handlers = accesslog
qualname = wsgi
propagate = 0
[handler_console]
class = StreamHandler
args = (sys.stderr,)
level = NOTSET
formatter = generic
[handler_accesslog]
class = FileHandler
args = ('%(here)s/../log/Z4.log','a')
level = INFO
formatter = message
[handler_eventlog]
class = FileHandler
args = ('%(here)s/../log/event.log', 'a')
level = INFO
formatter = generic
我主要是从here得到它,但不得不做出一些调整。