public FlowLoggerImpl() {
        try {

            Class<?> factoryClass = Class.forName("org.slf4j.LoggerFactory");
            Class<?> loggerClass = Class.forName("org.slf4j.Logger");
            Method factoryMethod = factoryClass.getDeclaredMethod("getLogger", String.class);
            logger = factoryMethod.invoke(null, EasyFlow.class.getName());
            infoMethod = loggerClass.getDeclaredMethod("info", String.class);
            errorMethod = loggerClass.getDeclaredMethod("error", String.class, Throwable.class);
            info("Using slf4j logging...");
        } catch (Exception e) {
            info("Slf4j is not found on the classpath. Falling back to System.out");
        }
    }