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)
|