Я использую пирамиду. В моем __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, но я все еще немного сбит с толку, что является лучшим и простым способом печати информации журнала в файл.