Hello, First time mailing and looking for help/guidance. Hopefully not too in the wrong place.
We've had an app with logging to a /var/log for many years through logging.sysloghandler. Recently, though, I noticed that it suddenly was getting no logs whatsoever over there and investigated, believing the recent triggering change was upgrading to Mac OSX 12 (Monterey). My understanding is a bit primitive, but our config had never been hard to follow previously and I may be missing something fundamental. I've looked over a number of online examples but they don't seem to be running correctly either. I'm on Python 3.6.8 (though we're about to start an upgrade to the latest stable, if that in theory may have changes to syslog handling). I'm mostly ending up here since I'm finding such differences in response between python modules I'd expect to be fairly similar. Separating into a test script I've been testing with logging.SysLogHandler, syslog, and the command line 'syslog -s'. Replaced all below with a placeholder appName but it's normally a fairly unique setupCDNGUI name. Example with syslog (python module): - This will show up in System.log but not in Apple's Console for all messages to device, though won't get all the way to file. import syslog syslog.syslog(syslog.LOG_NOTICE, 'AppName: THIS IS A TEST - Processing started') syslog.syslog(syslog.LOG_ERR, 'AppName: THIS IS A TEST ERROR - Processing started') Example with SyslogHandler: - This doesn't seem to show up anywhere besides the screen log, which is odd to me as reading the docs, I understood this to be a logging integration into the syslog module, so expected similar behavior in at least what was sent out. Syslog handler is definitely picked up in logging.handlers root_logger = logging.getLogger() root_logger.setLevel(logging.DEBUG) basic_datefmt = '%m/%d/%Y %I:%M:%S %p' formatter = logging.Formatter(fmt='%(asctime)s %(levelname)s: %(message)s', datefmt=basic_datefmt) syslog_format = logging.Formatter(fmt='SetupCDNGUI: %(message)s', datefmt=basic_datefmt) scrhandler = logging.StreamHandler() scrhandler.setFormatter(formatter) root_logger.addHandler(scrhandler) 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) logging.critical("This is a test") logging.error("This is a test error") logging.info("Still a test") logging.debug("Testy test") Using command line: Oddly, this gets to Console.Apps messages from device reliably, though doesn't get picked up by syslog -w or get received by the ASL config redirect: syslog -s -l error -k Message "appName: this is a test2" syslog -s -l notice -k Message "appName: this is a test3" ASL configuration, which is loaded according to syslog -config: > /var/log/appName/appName.log mode=0640 compress format=std rotate=seq file_max=50M all_max=500M ? [CA= Sender appName] file /var/log/appName/appName.log My end goal is really to get just a working python logging -> var/log/appname/appname.log again so glad to just be pointed in the right direction if way off base. -- Philip Bloom Director, Services Engineering *AppLovin Corporation* M: (786)-338-1439 <786-338-1439> [image: LinkedIn] <https://www.linkedin.com/company/applovin> [image: Twitter] <https://twitter.com/AppLovin> [image: Facebook] <https://facebook.com/AppLovin> [image: Instagram] <https://www.instagram.com/applovin/> [image: AppLovin] <https://www.applovin.com/> -- https://mail.python.org/mailman/listinfo/python-list