The Making of Bloop — OMG the logs are too noisy!

One of a series of posts about our next app as we make it. It’ll include some details about our technology and design choices and challenges.

Since I added some functionality to Bloop that uses Flint, we have been getting Flint’s detailed logging for free. You can however have too much of a good thing.

By default Flint’s logging will let you know when every action you perform starts and completes or fails. As I have added actions for some of the on-screen controls that show in our content player, the console output has become a bit too noisy.

Flint’s logging lets you toggle logging levels per-topic (a Feature is a topic) at runtime, so all I had to do was call this for the features that are too noisy and set the log level to warning on those, as I want debug for everything else in the app at the moment.

What we were getting was a mix of our on-screen controls logging as well as output from Flint’s internal workings.

🐞 16:58:18.428 Debug • main | Activity 'Dispatch' | OSDFeatures/PlayerOSDFeature/#ShowPlayerOSDAction | Starting | State: XXXXXX
🐞 16:58:18.428 Debug • main | Activity 'Dispatch' | OSDFeatures/PlayerOSDFeature/#ShowPlayerOSDAction | Completed (success (not closing action stack)) | State: XXXXXX
🐞 16:58:18.428 Debug • N/A | Activity 'Intent Dispatch' | FlintFeatures/SiriIntentsFeature | Action completed but did not return an intent to donate: Request 5 for PlayerOSDFeature action ShowPlayerOSDAction

The fix was very simple, but I had forgotten my own Flint API for this and hadn’t yet written up Flint documentation for it, so I added it. I changed my code so that the App delegate does this:


FlintFeatures.setLoggingLevel(.warning)
OSDFeatures.setLoggingLevel(.warning)

All features that are sub-features of those feature groups are now quiet as a mouse. All the other features of the app retain the default logging level.

About

Marc Palmer (@marcpalmerdev) is a consultant and software engineer specialising in Apple platforms. He created the Flint open source framework. He writes native apps like the music practice app Soundproof for iOS devices for his company Montana Floss Co.. He can also do a pretty good job of designing products. Don't ask him to draw anything, because that's just embarrassing. You can find out more about him here.

Comments are closed.