Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/python/313.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
如何为Python金字塔服务生服务器设置日志记录?_Python_Logging_Pyramid_Waitress - Fatal编程技术网

如何为Python金字塔服务生服务器设置日志记录?

如何为Python金字塔服务生服务器设置日志记录?,python,logging,pyramid,waitress,Python,Logging,Pyramid,Waitress,我正在尝试为Python金字塔服务员服务器设置日志记录。我遵循了以下文件: 这里:。我已经厌倦了这两种方法,都没有从服务员那里得到记录结果。我自己的日志工作得很好 我已经将waiteress日志记录级别设置为DEBUG,即使删除服务器文件,也不会得到任何结果。服务员悄悄地让服务器出故障 如何设置金字塔服务员服务器的日志记录,以便我可以查看请求的文件、丢失的文件错误等 方法1: 从代码设置: import logging logging.basicConfig() logger = logging

我正在尝试为Python金字塔服务员服务器设置日志记录。我遵循了以下文件: 这里:。我已经厌倦了这两种方法,都没有从服务员那里得到记录结果。我自己的日志工作得很好

我已经将waiteress日志记录级别设置为DEBUG,即使删除服务器文件,也不会得到任何结果。服务员悄悄地让服务器出故障

如何设置金字塔服务员服务器的日志记录,以便我可以查看请求的文件、丢失的文件错误等

方法1: 从代码设置:

import logging
logging.basicConfig()
logger = logging.getLogger('waitress')
logger.setLevel(logging.DEBUG)
方法2: 使用pserve development.ini启动服务器,其中development.ini文件设置日志记录,如下所示

[app:main]
use = egg:MyProject

pyramid.reload_templates = true
pyramid.debug_authorization = false
pyramid.debug_notfound = false
pyramid.debug_routematch = false
pyramid.default_locale_name = en
pyramid.includes =
pyramid_debugtoolbar

[server:main]
use = egg:waitress#main
host = 0.0.0.0
port = 6543



[loggers]
keys = root, myproject, waitress

[handlers]
keys = console

[formatters]
keys = generic

[logger_root]
level = INFO
handlers = console

[logger_myproject]
level = DEBUG
handlers =
qualname = myproject


[logger_waitress]
level = DEBUG
handlers =
qualname = waitress


[handler_console]
class = StreamHandler
args = (sys.stderr,)
level = NOTSET
formatter = generic

[formatter_generic]
format = %(asctime)s %(levelname)-5.5s [%(name)s][%(threadName)s] %(message)s

日志配置实际上是有效的。这里,我演示了一个简单的视图,用于为女服务员记录器发出日志消息

@view_config(route_name='hello_baby', 
             request_method='GET', 
             renderer='string')
def hello_baby(request):
    import logging
    logger = logging.getLogger('waitress')
    logger.info('Hello baby!')
    return 'Hi there'
当您点击页面时,应该能够看到日志消息。您没有看到来自waitress的消息的原因是-没有为waitress中的常见例程发出日志消息。它只在出现问题时发出消息,您可以阅读

关于Python日志记录的一些其他知识,您可以阅读我的文章:

我使用paste的translogger显示了控制台日志记录(针对所有请求);一个很好的例子是

下面是my.ini的相关部分:

[app:main]
use = egg:${:app}
filter-with = translogger

[filter:translogger]
use = egg:Paste#translogger
# these are the option default values (see http://pythonpaste.org/modules/translogger.html)
# logger_name='wsgi'
# format=None
# logging_level=20
# setup_console_handler=True
# set_logger_level=10

你的控制台没有日志,不是吗?我只从“myproject”到控制台进行日志记录。绝对没有什么来自女服务员的记录。当设置为调试时,我想我至少会得到一些东西。请参见:Victor,谢谢您的回复。我上个月读了你那篇很棒的日志文章:)这是我对日志的第一次介绍。我有一种感觉,我问的不是正确的问题,但作为一个新手,很难知道这一切。我很惊讶地得知,服务员没有做任何日志记录或错误输出。作为测试,我从我的服务器上删除了一些静态文件,服务员默默地失败了。没有“找不到文件”或任何内容。我需要发布另一个问题。我真的很想记录静态文件请求。我想我需要在金字塔中设置它并手动执行。