If your debugger output is producing too many log messages, here are some ways you can reduce it.
In every project, I will add
OS_ACTIVITY_MODE to my scheme. This is because OS level logs are enabled by default.
Go to your scheme > Run > Environment Variables > Add
OS_ACTIVITY_MODE > Set the value to
Run, and all system logs will not be shown.
However, that will also not show logs from
OSLog, even if they are from your own app. Oops..
So, if you’re using
OSLog, then don’t add
What is OSLog?
In case you didn’t know,
OSLog is Swift logging framework (previously
oslog). You can watch this WWDC 2020 session to learn more.
It is fundamental to understand how the 5 log levels work. In your app, you will write log with the levels accordingly.
Also to note the persistence behavior.
Xcode console will show
info level by default, which means
debug level messages will NOT be shown, while
fault will be shown.
How to change OSLog level?
You can change the logging level while debugging using the
Logging behavior is normally governed by the system. However, while debugging in macOS, you can enable different logging levels for a subsystem..
To reduce the amount of log, you can run:
sudo log config --mode "level:default" --subsystem com.zen.app
That will show
notice (default) level and above, thus hiding
You might try to set “level:error”, but that won’t work, as it is not a config as per
man log. Only
off | default | info | debug.
If you want to see your
debug level log, you can use “level:debug”.
To check your current log level, run:
sudo log config --status --subsystem com.zen.app