You signed in with another tab or window. Reload to refresh your session.You signed out in another tab or window. Reload to refresh your session.You switched accounts on another tab or window. Reload to refresh your session.Dismiss alert
{{ message }}
Repository navigation
On Osx Monterey(12.x), Logging.handlers.SysLogHandler does not work #91070
Hello, don't file these often so apologies for any mistakes, trying to be good python citizen here.
Checked this on the python-list first, and others reported it as reproducible.
The issue is:
On Osx Monterey(12.x), Logging.handlers.SysLogHandler does not work. It won't throw any error but the ASL/Console.App does not see any messages from it. On OSX Big Sur (11.x) this works just fine with the exact same code.
I think I've cut this into a small example proof that can be run to demonstrate the issue. If this is run and any of the substrings are searched for in Console.App when it is checking events, only the QQQ message from SysLog will show up.
Gonna work around it likely on our end, but hope this helps it get fixed for a future version.
---
importloggingfromlogging.handlersimportSysLogHandlerroot_logger=logging.getLogger()
root_logger.setLevel(logging.DEBUG)
basic_datefmt='%m/%d/%Y %I:%M:%S %p'syslog_format=logging.Formatter(fmt='SetupCDNGUI: %(message)s', datefmt=basic_datefmt)
sys_handler=SysLogHandler(address='/var/run/syslog')
#sys_handler.encodePriority(SysLogHandler.LOG_USER, SysLogHandler.LOG_ALERT)# Tried with the above, but didn't make a difference. Neither did not defining the address and letting it go to local host.sys_handler.setFormatter(syslog_format)
root_logger.addHandler(sys_handler)
# None of these will show up.logging.critical("CCC This is a test critical")
logging.error("EEE This is a test error")
logging.info("III Still a test")
# Comparatively this sends a message received just fineimportsyslogsyslog.openlog(logoption=syslog.LOG_PID, facility=syslog.LOG_USER)
syslog.syslog(syslog.LOG_NOTICE, 'QQQ test log')
This is probably not a bug in python, but a change in system behaviour.
In particular, I've used the lsof command to check the open files for the syslogd proces on a macOS 10.13 and 12.2 system. On the former syslogd has /var/run/syslog open, on the latter it doesn't.
The feature to listen on this socket has been removed entirely, the 12.2 system no longer lists a "-bsd_in" option for syslogd in the manual page whereas it is both available and enabled by default on 10.13.
It might be possible to change the SyslogHandler to optionally use the syslog module to log, but I'm not sure it is worth doing this and that would definitely be a new feature.
Activity
pbloom commentedon Mar 3, 2022
Hello, don't file these often so apologies for any mistakes, trying to be good python citizen here.
Checked this on the python-list first, and others reported it as reproducible.
The issue is:
On Osx Monterey(12.x), Logging.handlers.SysLogHandler does not work. It won't throw any error but the ASL/Console.App does not see any messages from it. On OSX Big Sur (11.x) this works just fine with the exact same code.
I think I've cut this into a small example proof that can be run to demonstrate the issue. If this is run and any of the substrings are searched for in Console.App when it is checking events, only the QQQ message from SysLog will show up.
Gonna work around it likely on our end, but hope this helps it get fixed for a future version.
---
ronaldoussoren commentedon Mar 3, 2022
This is probably not a bug in python, but a change in system behaviour.
In particular, I've used the lsof command to check the open files for the syslogd proces on a macOS 10.13 and 12.2 system. On the former syslogd has /var/run/syslog open, on the latter it doesn't.
The feature to listen on this socket has been removed entirely, the 12.2 system no longer lists a "-bsd_in" option for syslogd in the manual page whereas it is both available and enabled by default on 10.13.
It might be possible to change the SyslogHandler to optionally use the syslog module to log, but I'm not sure it is worth doing this and that would definitely be a new feature.
pbloom commentedon Mar 4, 2022
I could certainly understand that. It's a weird apple choice.
If so, then it probably good to adjust https://docs.python.org/3/library/logging.handlers.html#sysloghandler since it still talks about it being expected.
4 remaining items
pythongh-91070: Add note about SysLogHandler on macOS 12.x.
gh-91070: Add note about SysLogHandler on macOS 12.x (Monterey). (GH-…
pythongh-91070: Add note about SysLogHandler on macOS 12.x (Monterey). (
pythongh-91070: Add note about SysLogHandler on macOS 12.x (Monterey). (
[3.10] gh-91070: Add note about SysLogHandler on macOS 12.x (Monterey…
[3.11] gh-91070: Add note about SysLogHandler on macOS 12.x (Monterey…
Mausy5043 commentedon Apr 27, 2024
And (maybe?) point macOS users to alternative methods or workarounds?