Logging
The Zeta Android SDK routes all diagnostic output through Android's Logcat. Log output is visible in Android Studio's Logcat window during development.
Available since: Android SDK 1.0.0.
This guide covers enabling logging, choosing a log level, and recommended per-build-type setup. All logging APIs live on the ZTLogger object. No SDK initialization is required before calling them.
On this page
Enable logging
By default, the SDK produces no log output (NONE-equivalent behavior). Enable logging as early as possible in your app lifecycle — typically right after calling ZetaClient.initialize():
import net.zetaglobal.app.zetacore.logger.ZTLogger
import net.zetaglobal.app.zetacore.logger.ZTLogLevel
ZetaClient.initialize(applicationContext, config)
ZTLogger.setLevel(ZTLogLevel.DEBUG)
import net.zetaglobal.app.zetacore.logger.ZTLogger;
import net.zetaglobal.app.zetacore.logger.ZTLogLevel;
ZetaClient.INSTANCE.initialize(getApplicationContext(), config);
ZTLogger.setLevel(ZTLogLevel.DEBUG);
To silence all SDK output:
ZTLogger.setLevel(ZTLogLevel.NONE)
ZTLogger.setLevel(ZTLogLevel.NONE);
setLevel() can be called at any time — before or after initialization. The level takes effect immediately.
Log levels
ZTLogLevel controls which messages are emitted. Only messages at or above the configured level reach Logcat.
| Level | Typical use |
|---|---|
NONE | No SDK messages to the console. |
VERBOSE | Fine-grained trace output — every SDK step. |
DEBUG | Developer diagnostics useful during development. |
INFO | Notable operational events. |
WARNING | Unexpected but recoverable situations. |
ERROR | Failures that allow the SDK to continue. |
Levels are ordered from least to most severe. Only messages at or above your chosen minimum are printed.
Default level
Until you call ZTLogger.setLevel(), the SDK suppresses all console output (NONE-equivalent behavior). Set a level explicitly when you want SDK messages in Logcat.
Recommended setup per build type
| Build type | Recommended level | Reason |
|---|---|---|
| Debug / development | DEBUG or VERBOSE | Maximum visibility for troubleshooting |
| Internal / QA | WARNING | Noise-free while surfacing potential issues |
| Production / release | NONE | No SDK log output in user-facing builds |
ZTLogger.setLevel(ZTLogLevel.VERBOSE) // maximum detail
// or
ZTLogger.setLevel(ZTLogLevel.DEBUG) // less noise, still useful
// or
ZTLogger.setLevel(ZTLogLevel.WARNING) // warnings and errors only
// or
ZTLogger.setLevel(ZTLogLevel.NONE) // silent
ZTLogger.setLevel(ZTLogLevel.VERBOSE); // maximum detail
// or
ZTLogger.setLevel(ZTLogLevel.DEBUG); // less noise, still useful
// or
ZTLogger.setLevel(ZTLogLevel.WARNING); // warnings and errors only
// or
ZTLogger.setLevel(ZTLogLevel.NONE); // silent
Typical startup sequence
Use BuildConfig.DEBUG to set the log level automatically based on the build type:
ZetaClient.initialize(applicationContext, config)
ZTLogger.setLevel(if (BuildConfig.DEBUG) ZTLogLevel.DEBUG else ZTLogLevel.NONE)
ZetaClient.INSTANCE.initialize(getApplicationContext(), config);
ZTLogger.setLevel(BuildConfig.DEBUG ? ZTLogLevel.DEBUG : ZTLogLevel.NONE);
See also
- Migration Guide / Breaking Change 2 — Logging APIs move to
ZTLogger - Data & Privacy — privacy controls, manifest permissions, and secrets handling.
