Karma Trace Logging SDK
ktools-java/ktrace/README.mdktrace is the Java tracing and logging SDK in the ktools ecosystem.
It provides:
- namespaced channel tracing via
TraceLogger.trace(...) - always-visible operational logging via
TraceLogger.info/warn/error(...) - executable-facing channel filtering and formatting via
Logger kcliinline parser integration throughLogger.makeInlineParser(...)
Documentation
Build SDK
ktrace depends on the sibling Java kcli SDK. Build ktools-java/kcli first,
or use the Java workspace root to build both in dependency order:
cd ..
kbuild --batch --build-latest
cd ktrace
kbuild --build-latest
SDK output:
build/latest/sdk/classes
Build And Test Demos
If kcli has not been built yet in this workspace, prefer the batch build from
ktools-java/ first so the dependency SDK is present.
# Builds the SDK plus demos listed in .kbuild.json build.defaults.demos.
kbuild --build-latest
# Explicit demo-only run (uses .kbuild.json build.demos when no args are passed).
kbuild --build-demos
./build/latest/tests/run-tests
Demos:
- Bootstrap compile/link check:
demo/bootstrap/ - SDKs:
demo/sdk/{alpha,beta,gamma} - Executables:
demo/exe/{core,omega}
Trace CLI examples:
./demo/exe/core/build/latest/test --trace
./demo/exe/core/build/latest/test --trace '.*'
./demo/exe/omega/build/latest/test --trace '*.*'
./demo/exe/omega/build/latest/test --trace '*.*.*.*'
./demo/exe/omega/build/latest/test --trace '*.{net,io}'
./demo/exe/omega/build/latest/test --trace-namespaces
./demo/exe/omega/build/latest/test --trace-channels
./demo/exe/omega/build/latest/test --trace-colors
API Model
import ktrace.Logger;
import ktrace.TraceColors;
import ktrace.TraceLogger;
Logger logger = new Logger();
TraceLogger appTrace = new TraceLogger("core");
appTrace.addChannel("app", TraceColors.color("BrightCyan"));
appTrace.addChannel("startup", TraceColors.color("BrightYellow"));
logger.addTraceLogger(appTrace);
logger.enableChannel(appTrace, ".app");
appTrace.trace("app", "core initialized");
CLI Integration
kcli.Parser parser = new kcli.Parser();
parser.addInlineParser(logger.makeInlineParser(appTrace));
parser.parseOrExit(args);