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.

LevelTypical use
NONENo SDK messages to the console.
VERBOSEFine-grained trace output — every SDK step.
DEBUGDeveloper diagnostics useful during development.
INFONotable operational events.
WARNINGUnexpected but recoverable situations.
ERRORFailures 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 typeRecommended levelReason
Debug / developmentDEBUG or VERBOSEMaximum visibility for troubleshooting
Internal / QAWARNINGNoise-free while surfacing potential issues
Production / releaseNONENo 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