code: public static long traceEnterWithContext(Logger log, String context, String method, Object... args) {
          if (!log.isTraceEnabled()) {
              return 0;
          }
  
          long time = CURRENT_TIME.get();
          log.trace("ENTER {}::{}@{} {}.", context, method, time, args);
          return time;
      }
docs: Traces the fact that a method entry has occurred.
  
  @param log     The Logger to log to.
  @param context Identifying context for the operation. For example, this can be used to differentiate between
  different instances of the same object.
  @param method  The name of the method.
  @param args    The arguments to the method.
  @return A generated identifier that can be used to correlate this traceEnter with its corresponding traceLeave.
  This is usually generated from the current System time, and when used with traceLeave it can be used to log
  elapsed call times.