forked from dowhilefalse/Donation-Platform
-
Notifications
You must be signed in to change notification settings - Fork 2
/
twisted-server.py
66 lines (57 loc) · 2.18 KB
/
twisted-server.py
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
import os
import io
import sys
import argparse
parser = argparse.ArgumentParser(description='Hendrix Deploy Server')
parser.add_argument('-p', '--port', type=int, default=8000, help='port to listen on (default 8000)')
args = parser.parse_args()
from django.core.wsgi import get_wsgi_application
from django.core.management import execute_from_command_line
from django.conf import settings
os.environ.setdefault("DJANGO_SETTINGS_MODULE", "main.settings")
execute_from_command_line(['manage.py', 'collectstatic', '--no-input'])
# application = get_wsgi_application()
from twisted.python import threadpool
from twisted.internet import reactor
thpool = threadpool.ThreadPool(minthreads=25, maxthreads=81)
from zope.interface import provider
from twisted.logger import (
globalLogPublisher, LogLevel, textFileLogObserver, ILogObserver,
FilteringLogObserver, LogLevelFilterPredicate
)
from hendrix.deploy.base import HendrixDeploy
deployer = HendrixDeploy(
action='start',
options={
'verbosity': 2,
'http_port': args.port,
# 'wsgi': application,
'settings': os.environ['DJANGO_SETTINGS_MODULE']
},
reactor=reactor,
threadpool=thpool
)
is_logging = True
is_log2file = False
if is_logging:
if is_log2file:
DEFAULT_LOG_FILE = os.path.join(settings.BASE_DIR, 'default-hendrix.log')
@provider(ILogObserver)
def FileObserver(path=DEFAULT_LOG_FILE, log_level=LogLevel.warn):
file_observer = textFileLogObserver(io.open(path, 'at'))
return FilteringLogObserver(
file_observer,
[LogLevelFilterPredicate(log_level), ]
)
log_path = os.path.join(settings.BASE_DIR, 'hendrix-debug.log')
globalLogPublisher.addObserver(FileObserver(path=log_path, log_level=LogLevel.debug))
else:
@provider(ILogObserver)
def ConsoleObserver(log_level=LogLevel.warn):
console_observer = textFileLogObserver(sys.stdout)
return FilteringLogObserver(
console_observer,
[LogLevelFilterPredicate(log_level), ]
)
globalLogPublisher.addObserver(ConsoleObserver(log_level=LogLevel.debug))
deployer.run()