Apr 17
Python / OS X caution: logging's syslog handler is broken by default
If you use the standard Python logging library, the syslog handler doesn't work by default on OS X 10.5. The problem is that SyslogHandler assumes that it can send to localhost:514. In 10.5 Apple disabled network syslog by default, which is a good security measure but it means that previously working code will no longer work (rdar://5871746). The solution is simple - if you used to do logging.handlers.SysLogHandler(address) you now need something like this:
if sys.platform == "darwin":
# Apple made 10.5 more secure by disabling network syslog:
address = "/var/run/syslog"
else:
address = ('localhost', 514)
syslog = logging.handlers.SysLogHandler(address)


blog comments powered by Disqus