как добавить логирование перед пирамидой add_notfound_view и add_exception_view - PullRequest
0 голосов
/ 31 октября 2018

Я использую пирамиду. В моем __init__.py я использую декораторы notfound_view_config и exception_view_config для перенаправления на пользовательскую страницу 404.

def main(global_config, **settings):
    config = Configurator(settings=settings)
    config.include('pyramid_mako')
    config.include('pyramid_handlers')
    config.include('pyramid_beaker')
    # set the path for static views
    config_static_views(config)

    # not found view
    config.add_notfound_view(notfound)
    config.add_exception_view(error_view)
    ## more code
    return config.make_wsgi_app()


@notfound_view_config()
def notfound(exc,request):
    #redirect to my custom 404 page

@exception_view_config()
def error_view(exc,request):
    #redirect to my custom 404 page

Код моего .ini файла

[app:main]
use = egg:package_name

pyramid.reload_templates = false
pyramid.debug_authorization = false
pyramid.debug_notfound = false
pyramid.debug_routematch = false
pyramid.default_locale_name = en

#-------------------CUSTOM SETTINGS----------------------------------------

pyramid.includes = pyramid_exclog

session.type = memory
# session.data_dir = %(here)s/data/sessions/data
# session.lock_dir = %(here)s/data/sessions/lock
session.key = soe_key
session.secret = some_secret

###
# wsgi server configuration
###

[server:main]
use = egg:waitress#main
host = 127.0.0.1
port = 5000

[loggers]
keys = root, pyra

[handlers]
keys = console

[formatters]
keys = generic

[logger_root]
level = WARN
handlers = console

[logger_pyra]
level = WARN
handlers =
qualname = pyra

[logger_exc_logger]
level = ERROR
handlers = exc_handler
qualname = exc_logger

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

[handler_exc_handler]
class = FileHandler
args = ('%%(here)s/exceptions.log',)
level = ERROR
formatter = exc_formatter

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

[formatter_exc_formatter]
format = %(asctime)s %(message)s

Теперь, когда у меня есть некоторые проблемы с моим веб-сайтом в процессе производства (иногда я получаю 404 пользовательские страницы, даже если ссылка / страница существует), я не могу выполнить репликацию на моем локальном компьютере. Мне нужно добавить какую-то запись в журнал, чтобы сообщить мне, что происходит, когда появляется эта неправильная страница 404.

Я не уверен, что это лучший и простой способ сделать это.

Я попытался использовать pyramid_exclog из здесь , но он не показывает мне никаких подробностей журнала.

Я прочитал много ответов о stackoverflow, но я все еще немного сбит с толку, что является лучшим и простым способом печати информации журнала в файл.

...