Mercurial > piecrust2
diff piecrust/wsgiutil/__init__.py @ 897:b4156f5d4368
wsgi: Add admin panel to WSGI helpers.
author | Ludovic Chabant <ludovic@chabant.com> |
---|---|
date | Sat, 08 Jul 2017 22:01:00 -0700 |
parents | 81d9c3a3a0b5 |
children | 7ecb946bfafd |
line wrap: on
line diff
--- a/piecrust/wsgiutil/__init__.py Sat Jul 08 21:44:03 2017 -0700 +++ b/piecrust/wsgiutil/__init__.py Sat Jul 08 22:01:00 2017 -0700 @@ -1,9 +1,41 @@ +import logging from piecrust.serving.server import WsgiServer -def get_app(root_dir, cache_key='prod', enable_debug_info=False): +def _setup_logging(log_file, log_level, max_log_bytes, log_backup_count): + if log_file: + from logging.handlers import RotatingFileHandler + handler = RotatingFileHandler(log_file, maxBytes=max_log_bytes, + backupCount=log_backup_count) + handler.setLevel(log_level) + logging.getLogger().addHandler(handler) + + +def get_app(root_dir, *, + cache_key='prod', + enable_debug_info=False, + log_file=None, + log_level=logging.INFO, + log_backup_count=0, + max_log_bytes=4096): + _setup_logging(log_file, log_level, max_log_bytes, log_backup_count) app = WsgiServer(root_dir, cache_key=cache_key, enable_debug_info=enable_debug_info) return app + +def get_admin_app(root_dir, *, + url_prefix='pc-admin', + log_file=None, + log_level=logging.INFO, + log_backup_count=0, + max_log_bytes=4096): + _setup_logging(log_file, log_level, max_log_bytes, log_backup_count) + es = { + 'FOODTRUCK_ROOT': root_dir, + 'FOODTRUCK_URL_PREFIX': url_prefix} + from piecrust.admin.web import create_foodtruck_app + app = create_foodtruck_app(es) + return app +