Ejemplo n.º 1
0
  @Override
  public void onTrigger(final ProcessContext context, final ProcessSession session) {
    final String logLevelValue = context.getProperty(LOG_LEVEL).getValue().toLowerCase();

    final DebugLevels logLevel;
    try {
      logLevel = DebugLevels.valueOf(logLevelValue);
    } catch (Exception e) {
      throw new ProcessException(e);
    }

    final ComponentLog LOG = getLogger();
    boolean isLogLevelEnabled = false;
    switch (logLevel) {
      case trace:
        isLogLevelEnabled = LOG.isTraceEnabled();
        break;
      case debug:
        isLogLevelEnabled = LOG.isDebugEnabled();
        break;
      case info:
        isLogLevelEnabled = LOG.isInfoEnabled();
        break;
      case warn:
        isLogLevelEnabled = LOG.isWarnEnabled();
        break;
      case error:
        isLogLevelEnabled = LOG.isErrorEnabled();
        break;
    }

    if (!isLogLevelEnabled) {
      transferChunk(session);
      return;
    }

    final FlowFile flowFile = session.get();
    if (flowFile == null) {
      return;
    }

    processFlowFile(LOG, logLevel, flowFile, session, context);
    session.transfer(flowFile, REL_SUCCESS);
  }