Существует проблема с записью двоичных данных в стандартный вывод через Apache.
После настройки регистрации я пытаюсь записать строку '\x31\x00'
:
logging.getLogger().info('\x31\x00')
Все идет хорошо, если я использую консоль Python - вижу ожидаемое:
2011-05-01 22:21:27,430 INFO [test_logging:9][test_logging] 1
Но если я использую ведение журнала через Apache и mod_wsgi, я получаю трассировку:
Traceback (most recent call last):
File "/usr/local/lib/python2.6/logging/__init__.py", line 789, in emit
stream.write(fs % msg) TypeError: write() argument 1 must be string without null bytes, not str
Где ошибка? Куда мне копать?
Моя конфигурация регистрации:
[loggers]
keys=root
[formatters]
keys=stdoutFormatter
[handlers]
keys=stdoutHandler
[logger_root]
level=NOTSET
handlers=stdoutHandler
[handler_stdoutHandler]
class=StreamHandler
formatter=stdoutFormatter
args=(sys.stdout,)
[formatter_stdoutFormatter]
format=%(asctime)s %(levelname)s [%(module)s:%(lineno)d][%(funcName)s] %(message)s
Apache версия 2.2.16
Python версия 2.6.4
Mod_wsgi 2.8