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
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
|
from __future__ import print_function
import os
import sys
import locale
try:
from cStringIO import StringIO
except ImportError:
from io import StringIO
import mod_wsgi
import apache
def application(environ, start_response):
print('request message #1', file=environ['wsgi.errors'])
print('global message #1')
print('queued message #1', end='')
print('request message #2', file=environ['wsgi.errors'])
print('global message #2')
print('queued message #2', end='')
print('request message #3', file=environ['wsgi.errors'])
print('queued message #3', '+', sep="", end='')
print('queued message #4', end='')
headers = []
headers.append(('Content-Type', 'text/plain; charset="UTF-8"'))
write = start_response('200 OK', headers)
input = environ['wsgi.input']
output = StringIO()
if os.name != 'nt':
print('PID: %s' % os.getpid(), file=output)
print('UID: %s' % os.getuid(), file=output)
print('GID: %s' % os.getgid(), file=output)
print('CWD: %s' % os.getcwd(), file=output)
print(file=output)
print('STDOUT:', sys.stdout.name, file=output)
print('STDERR:', sys.stderr.name, file=output)
print('ERRORS:', environ['wsgi.errors'].name, file=output)
print(file=output)
print('python.version: %r' % (sys.version,), file=output)
print('python.prefix: %r' % (sys.prefix,), file=output)
print('python.path: %r' % (sys.path,), file=output)
print(file=output)
print('apache.version: %r' % (apache.version,), file=output)
print('mod_wsgi.version: %r' % (mod_wsgi.version,), file=output)
print(file=output)
print('mod_wsgi.process_group: %s' % mod_wsgi.process_group,
file=output)
print('mod_wsgi.application_group: %s' % mod_wsgi.application_group,
file=output)
print(file=output)
print('mod_wsgi.maximum_processes: %s' % mod_wsgi.maximum_processes,
file=output)
print('mod_wsgi.threads_per_process: %s' % mod_wsgi.threads_per_process,
file=output)
print('mod_wsgi.request_metrics: %s' % mod_wsgi.request_metrics(),
file=output)
print('mod_wsgi.process_metrics: %s' % mod_wsgi.process_metrics(),
file=output)
print('mod_wsgi.server_metrics: %s' % mod_wsgi.server_metrics(),
file=output)
print(file=output)
metrics = mod_wsgi.server_metrics()
if metrics:
for process in metrics['processes']:
for worker in process['workers']:
print(worker['status'], file=output, end='')
print(file=output)
print(file=output)
print('apache.description: %s' % apache.description, file=output)
print('apache.build_date: %s' % apache.build_date, file=output)
print('apache.mpm_name: %s' % apache.mpm_name, file=output)
print('apache.maximum_processes: %s' % apache.maximum_processes,
file=output)
print('apache.threads_per_process: %s' % apache.threads_per_process,
file=output)
print(file=output)
print('PATH: %s' % os.environ.get('PATH'), file=output)
print(file=output)
print('LANG: %s' % os.environ.get('LANG'), file=output)
print('LC_ALL: %s' % os.environ.get('LC_ALL'), file=output)
print('sys.getdefaultencoding(): %s' % sys.getdefaultencoding(),
file=output)
print('sys.getfilesystemencoding(): %s' % sys.getfilesystemencoding(),
file=output)
print('locale.getlocale(): %s' % (locale.getlocale(),),
file=output)
print('locale.getdefaultlocale(): %s' % (locale.getdefaultlocale(),),
file=output)
print('locale.getpreferredencoding(): %s' % locale.getpreferredencoding(),
file=output)
print(file=output)
keys = sorted(environ.keys())
for key in keys:
print('%s: %s' % (key, repr(environ[key])), file=output)
print(file=output)
keys = sorted(os.environ.keys())
for key in keys:
print('%s: %s' % (key, repr(os.environ[key])), file=output)
print(file=output)
result = output.getvalue()
if not isinstance(result, bytes):
result = result.encode('UTF-8')
yield result
block_size = 8192
data = input.read(block_size)
while data:
yield data
data = input.read(block_size)
|