This method is similar to {@link #info(String, Object)} method except that the
marker data is also taken into consideration.

@param marker the marker data specific to this log statement
@param format the format string
@param arg    the argument
554117
public void info( Marker marker, String format, Object arg )
    {
        if( m_delegate.isInfoEnabled() )
        {
            FormattingTuple tuple = MessageFormatter.format( format, arg );
            setMDCMarker( marker );
            m_delegate.inform( tuple.getMessage(), tuple.getThrowable() );
            resetMDCMarker();
        }
    }
763416
public static void log(int logLevel, String format, Object... args) {
    assertInitialization();
    sLogger.log(logLevel, format, args);
  }
132894
public static void trace(String format, Object... arguments) {
		trace(LogFactory.indirectGet(), format, arguments);
	}
880346
public void addMarker(Marker marker) {
        if (markers == null) {
            markers = new HashSet<>();
        }
        markers.add(marker);
        marker.setMap(this);
    }
499429
public void trace( String format, Object arg )
    {
        if( m_delegate.isTraceEnabled() )
        {
            FormattingTuple tuple = MessageFormatter.format( format, arg );
            m_delegate.trace( tuple.getMessage(), tuple.getThrowable() );
        }
    }
1220037
public static void warn(String format, Object... arguments) {
		warn(LogFactory.indirectGet(), format, arguments);
	}
926974
public void info (String msg, Object... args) {
    info(format(msg, args), getCause(args));
  }
545592
public static void debug(String format, Object... arguments) {
		debug(LogFactory.indirectGet(), format, arguments);
	}
272567
public static void log(String format, Object...args) {
    System.out.println(String.format(format, args));
  }
728696
public void info(String format, Object arg1, Object arg2) {
        formatAndLog(LOG_LEVEL_INFO, format, arg1, arg2);
    }
479490
@Override
	public void log(cn.hutool.log.level.Level level, String format, Object... arguments) {
		log(level, null, format, arguments);
	}
299603
public void d(String format, Object... args) {
    println(LogLevel.DEBUG, format, args);
  }
1020380
public static void printInfo(Object caller, String format, Object... args)
	{
		Object msg = String.format(format, args);
		
		printInfo(caller,msg);
	}
278860
private void logErrorThrow(String format, Object... args) {
        String msg = MessageFormatter.arrayFormat(format, args).getMessage();
        m_logger.error(msg);
        throw new RuntimeException(msg);
    }
712290
public static void e(String format, Object... args) {
    assertInitialization();
    sLogger.e(format, args);
  }
134589
public void error(Marker marker, String format, Object arg1, Object arg2) {
        if (!logger.isErrorEnabled(marker))
            return;
        if (instanceofLAL) {
            String formattedMessage = MessageFormatter.format(format, arg1, arg2).getMessage();
            ((LocationAwareLogger) logger).log(marker, fqcn, LocationAwareLogger.ERROR_INT, formattedMessage, new Object[] { arg1, arg2 }, null);
        } else {
            logger.error(marker, format, arg1, arg2);
        }
    }
86641
private void printf( String pattern, Object... args )
    {
        if( m_log != null )
        {
            StringBuilder sb = new StringBuilder();
            Formatter formatter = new Formatter(sb);

            try
            {
                formatter.format(pattern, args);

                m_log.info(sb.toString());
            }
            finally
            {
                formatter.close();
            }
        }
    }