NoTrace

@Target(allowedTargets = [AnnotationTarget.FUNCTION])
annotation class NoTrace(source)

Excludes a method from automatic tracing by the compiler plugin.

Methods annotated with @NoTrace will not have tracing code injected, even if they are public suspend methods in a ModuleLogic subclass.

Use this for:

  • High-frequency methods where tracing overhead is unacceptable

  • Internal helper methods that don't need visibility

  • Methods containing extremely sensitive operations

Usage:

class PaymentLogic(storeAccessor: StoreAccessor) : ModuleLogic() {

suspend fun processPayment(amount: Double) {
// This method WILL be traced
}

@NoTrace
suspend fun internalCryptoOperation(data: ByteArray) {
// This method will NOT be traced
}
}

See also

for redacting specific parameter values

for masking personally identifiable information