如何使用Cherrypy设置日志记录?

时间:2013-08-07 00:52:57

标签: python logging cherrypy openshift

我正在尝试使用我的Openshift python 3.3应用程序上的Cherrypy进行日志记录。 'appserver.log'文件仅更新,直到实际服务器启动,然后没有任何内容添加到日志文件中。我已阅读并遵循(据我所知)以下链接的文档。仍然没有记录。

CherryPy server errors log

http://docs.cherrypy.org/dev/refman/_cplogging.html

我的python代码段:

def run_cherrypy_server(app, ip, port=8080):
   from cherrypy import wsgiserver
   from cherrypy import config

# log.screen:           Set this to True to have both “error” and “access” messages printed to stdout.
# log.access_file:      Set this to an absolute filename where you want “access” messages written.
# log.error_file:       Set this to an absolute filename where you want “error” messages written.

appserver_error_log = os.path.join(os.environ['OPENSHIFT_HOMEDIR'], 'python', 'logs','appserver_error.log')
appserver_access_log = os.path.join(os.environ['OPENSHIFT_HOMEDIR'], 'python', 'logs','appserver_access.log')



config.update({
        'log.screen': True,
        'log.error_file': appserver_error_log,
        'log.access_file': appserver_access_log
       })

server = wsgiserver.CherryPyWSGIServer(
       (ip, port), app, server_name='www.cherrypy.example')
server.start()

'appserver_error.log'和'appserver_access.log'文件实际上是在适当的Openshift python目录中创建的。但是,appserver_error.log和appserver_access.log中的文件都没有记录信息。

一切运行正常,但没有记录。

任何想法我做错了什么?

1 个答案:

答案 0 :(得分:3)

WSGI服务器本身不进行任何日志记录。 CherryPy引擎(控制进程启动和关闭)写入“错误”日志,只有CherryPy应用程序(使用CherryPy的请求和响应对象)写入访问日志。如果您要传递自己的WSGI应用程序,则必须自己进行日志记录。