Mercurial > piecrust2
annotate piecrust/wsgiutil/__init__.py @ 1186:2ead9dcb6bec
prepare: Fix scaffolding refactor code.
For some reason the previous commit was missing some changes.
author | Ludovic Chabant <ludovic@chabant.com> |
---|---|
date | Fri, 23 Oct 2020 23:50:42 -0700 |
parents | d0f86d9a9d40 |
children |
rev | line source |
---|---|
897
b4156f5d4368
wsgi: Add admin panel to WSGI helpers.
Ludovic Chabant <ludovic@chabant.com>
parents:
666
diff
changeset
|
1 import logging |
935
7ecb946bfafd
admin: Lots of fixes for running the admin panel in a WSGI server.
Ludovic Chabant <ludovic@chabant.com>
parents:
897
diff
changeset
|
2 from piecrust.serving.wrappers import get_piecrust_server |
379
d40b744a9d99
serve: Add a generic WSGI app factory.
Ludovic Chabant <ludovic@chabant.com>
parents:
376
diff
changeset
|
3 |
d40b744a9d99
serve: Add a generic WSGI app factory.
Ludovic Chabant <ludovic@chabant.com>
parents:
376
diff
changeset
|
4 |
897
b4156f5d4368
wsgi: Add admin panel to WSGI helpers.
Ludovic Chabant <ludovic@chabant.com>
parents:
666
diff
changeset
|
5 def _setup_logging(log_file, log_level, max_log_bytes, log_backup_count): |
b4156f5d4368
wsgi: Add admin panel to WSGI helpers.
Ludovic Chabant <ludovic@chabant.com>
parents:
666
diff
changeset
|
6 if log_file: |
1175
d0f86d9a9d40
wsgi: Better logging for the admin app.
Ludovic Chabant <ludovic@chabant.com>
parents:
935
diff
changeset
|
7 from logging import Formatter |
897
b4156f5d4368
wsgi: Add admin panel to WSGI helpers.
Ludovic Chabant <ludovic@chabant.com>
parents:
666
diff
changeset
|
8 from logging.handlers import RotatingFileHandler |
b4156f5d4368
wsgi: Add admin panel to WSGI helpers.
Ludovic Chabant <ludovic@chabant.com>
parents:
666
diff
changeset
|
9 handler = RotatingFileHandler(log_file, maxBytes=max_log_bytes, |
b4156f5d4368
wsgi: Add admin panel to WSGI helpers.
Ludovic Chabant <ludovic@chabant.com>
parents:
666
diff
changeset
|
10 backupCount=log_backup_count) |
b4156f5d4368
wsgi: Add admin panel to WSGI helpers.
Ludovic Chabant <ludovic@chabant.com>
parents:
666
diff
changeset
|
11 handler.setLevel(log_level) |
1175
d0f86d9a9d40
wsgi: Better logging for the admin app.
Ludovic Chabant <ludovic@chabant.com>
parents:
935
diff
changeset
|
12 handler.setFormatter(Formatter( |
d0f86d9a9d40
wsgi: Better logging for the admin app.
Ludovic Chabant <ludovic@chabant.com>
parents:
935
diff
changeset
|
13 fmt='%(asctime)s %(levelname)s %(name)s: %(message)s')) |
897
b4156f5d4368
wsgi: Add admin panel to WSGI helpers.
Ludovic Chabant <ludovic@chabant.com>
parents:
666
diff
changeset
|
14 logging.getLogger().addHandler(handler) |
b4156f5d4368
wsgi: Add admin panel to WSGI helpers.
Ludovic Chabant <ludovic@chabant.com>
parents:
666
diff
changeset
|
15 |
b4156f5d4368
wsgi: Add admin panel to WSGI helpers.
Ludovic Chabant <ludovic@chabant.com>
parents:
666
diff
changeset
|
16 |
b4156f5d4368
wsgi: Add admin panel to WSGI helpers.
Ludovic Chabant <ludovic@chabant.com>
parents:
666
diff
changeset
|
17 def get_app(root_dir, *, |
b4156f5d4368
wsgi: Add admin panel to WSGI helpers.
Ludovic Chabant <ludovic@chabant.com>
parents:
666
diff
changeset
|
18 cache_key='prod', |
935
7ecb946bfafd
admin: Lots of fixes for running the admin panel in a WSGI server.
Ludovic Chabant <ludovic@chabant.com>
parents:
897
diff
changeset
|
19 serve_admin=False, |
897
b4156f5d4368
wsgi: Add admin panel to WSGI helpers.
Ludovic Chabant <ludovic@chabant.com>
parents:
666
diff
changeset
|
20 log_file=None, |
b4156f5d4368
wsgi: Add admin panel to WSGI helpers.
Ludovic Chabant <ludovic@chabant.com>
parents:
666
diff
changeset
|
21 log_level=logging.INFO, |
b4156f5d4368
wsgi: Add admin panel to WSGI helpers.
Ludovic Chabant <ludovic@chabant.com>
parents:
666
diff
changeset
|
22 log_backup_count=0, |
b4156f5d4368
wsgi: Add admin panel to WSGI helpers.
Ludovic Chabant <ludovic@chabant.com>
parents:
666
diff
changeset
|
23 max_log_bytes=4096): |
b4156f5d4368
wsgi: Add admin panel to WSGI helpers.
Ludovic Chabant <ludovic@chabant.com>
parents:
666
diff
changeset
|
24 _setup_logging(log_file, log_level, max_log_bytes, log_backup_count) |
935
7ecb946bfafd
admin: Lots of fixes for running the admin panel in a WSGI server.
Ludovic Chabant <ludovic@chabant.com>
parents:
897
diff
changeset
|
25 app = get_piecrust_server(root_dir, |
7ecb946bfafd
admin: Lots of fixes for running the admin panel in a WSGI server.
Ludovic Chabant <ludovic@chabant.com>
parents:
897
diff
changeset
|
26 serve_site=True, |
7ecb946bfafd
admin: Lots of fixes for running the admin panel in a WSGI server.
Ludovic Chabant <ludovic@chabant.com>
parents:
897
diff
changeset
|
27 serve_admin=serve_admin, |
7ecb946bfafd
admin: Lots of fixes for running the admin panel in a WSGI server.
Ludovic Chabant <ludovic@chabant.com>
parents:
897
diff
changeset
|
28 cache_key=cache_key) |
379
d40b744a9d99
serve: Add a generic WSGI app factory.
Ludovic Chabant <ludovic@chabant.com>
parents:
376
diff
changeset
|
29 return app |
d40b744a9d99
serve: Add a generic WSGI app factory.
Ludovic Chabant <ludovic@chabant.com>
parents:
376
diff
changeset
|
30 |
897
b4156f5d4368
wsgi: Add admin panel to WSGI helpers.
Ludovic Chabant <ludovic@chabant.com>
parents:
666
diff
changeset
|
31 |
b4156f5d4368
wsgi: Add admin panel to WSGI helpers.
Ludovic Chabant <ludovic@chabant.com>
parents:
666
diff
changeset
|
32 def get_admin_app(root_dir, *, |
935
7ecb946bfafd
admin: Lots of fixes for running the admin panel in a WSGI server.
Ludovic Chabant <ludovic@chabant.com>
parents:
897
diff
changeset
|
33 cache_key='prod', |
897
b4156f5d4368
wsgi: Add admin panel to WSGI helpers.
Ludovic Chabant <ludovic@chabant.com>
parents:
666
diff
changeset
|
34 log_file=None, |
b4156f5d4368
wsgi: Add admin panel to WSGI helpers.
Ludovic Chabant <ludovic@chabant.com>
parents:
666
diff
changeset
|
35 log_level=logging.INFO, |
b4156f5d4368
wsgi: Add admin panel to WSGI helpers.
Ludovic Chabant <ludovic@chabant.com>
parents:
666
diff
changeset
|
36 log_backup_count=0, |
b4156f5d4368
wsgi: Add admin panel to WSGI helpers.
Ludovic Chabant <ludovic@chabant.com>
parents:
666
diff
changeset
|
37 max_log_bytes=4096): |
b4156f5d4368
wsgi: Add admin panel to WSGI helpers.
Ludovic Chabant <ludovic@chabant.com>
parents:
666
diff
changeset
|
38 _setup_logging(log_file, log_level, max_log_bytes, log_backup_count) |
935
7ecb946bfafd
admin: Lots of fixes for running the admin panel in a WSGI server.
Ludovic Chabant <ludovic@chabant.com>
parents:
897
diff
changeset
|
39 app = get_piecrust_server(root_dir, |
7ecb946bfafd
admin: Lots of fixes for running the admin panel in a WSGI server.
Ludovic Chabant <ludovic@chabant.com>
parents:
897
diff
changeset
|
40 serve_site=False, |
7ecb946bfafd
admin: Lots of fixes for running the admin panel in a WSGI server.
Ludovic Chabant <ludovic@chabant.com>
parents:
897
diff
changeset
|
41 serve_admin=True, |
7ecb946bfafd
admin: Lots of fixes for running the admin panel in a WSGI server.
Ludovic Chabant <ludovic@chabant.com>
parents:
897
diff
changeset
|
42 cache_key=cache_key) |
897
b4156f5d4368
wsgi: Add admin panel to WSGI helpers.
Ludovic Chabant <ludovic@chabant.com>
parents:
666
diff
changeset
|
43 return app |
b4156f5d4368
wsgi: Add admin panel to WSGI helpers.
Ludovic Chabant <ludovic@chabant.com>
parents:
666
diff
changeset
|
44 |