«печать» работает только на сервере разработки. Но что, если я хочу, чтобы он работал в Apache? На всякий случай, если я забуду это закомментировать ... Я хочу, чтобы все шло гладко, не вызывая ошибок.
(Просто ничего не печатать)
Что касается быстрой печати
, просто используйте:
print >>sys.stderr, 'log msg'
- - тогда он, конечно же, попадает в error.log.
То, что вы предлагаете, является плохой идеей, но если вы все равно настаиваете на этом, ознакомьтесь с директивами конфигурации mod_wsgi :
WSGIRestrictStdout
Description: Enable restrictions on use of STDOUT.
Syntax: WSGIRestrictStdout On|Off
Default: WSGIRestrictStdout On
Context: server config
Module: mod_wsgi.c
Хорошо работающее приложение Python WSGI никогда не следует пытаться записать какие-либо данные непосредственно в sys.stdout или используйте напечатать заявление, не направляя его к альтернативному файловому объекту. Это из-за способов размещения WSGI такие приложения, как CGI, используют стандарт вывод как механизм отправки содержание ответа обратно на веб сервер. Если бы приложение WSGI было напрямую писать в sys.stdout это может помешать работе адаптер WSGI и в результате повреждение выходного потока.
В интересах продвижения переносимость приложений WSGI, mod_wsgi ограничивает доступ к sys.stdout и вызовет исключение если сделана попытка использовать sys.stdout явно.
Единственный раз, когда можно захотеть снять это ограничение чисто удобства использования оператор печати во время отладки приложения, или если какой-то третий партийный модуль или приложение WSGI было ошибочно использует печать, когда не должен. Если ограничения на использование sys.stdout удаляются, любые данные написанное на него будет отправлено вместо этого через sys.stderr и появится в файле журнала ошибок Apache.