private void printlnInternal(int logLevel, String msg) {
        String tag = logConfiguration.tag;
        String thread = logConfiguration.withThread
                ? logConfiguration.threadFormatter.format(Thread.currentThread())
                : null;
        String stackTrace = logConfiguration.withStackTrace
                ? logConfiguration.stackTraceFormatter.format(
                StackTraceUtil.getCroppedRealStackTrack(new Throwable().getStackTrace(),
                        logConfiguration.stackTraceOrigin,
                        logConfiguration.stackTraceDepth))
                : null;

        if (logConfiguration.interceptors != null) {
            LogItem log = new LogItem(logLevel, tag, thread, stackTrace, msg);
            for (Interceptor interceptor : logConfiguration.interceptors) {
                log = interceptor.intercept(log);
                if (log == null) {
                    // Log is eaten, don't print this log.
                    return;
                }

                // Check if the log still healthy.
                if (log.tag == null || log.msg == null) {
                    throw new IllegalStateException("FilePrinterInterceptor " + interceptor
                            + " should not remove the tag or message of a log,"
                            + " if you don't want to print this log,"
                            + " just return a null when intercept.");
                }
            }

            // Use fields after interception.
            logLevel = log.level;
            tag = log.tag;
            thread = log.threadInfo;
            stackTrace = log.stackTraceInfo;
            msg = log.msg;
        }

        printer.println(logLevel, tag, logConfiguration.withBorder
                ? logConfiguration.borderFormatter.format(new String[]{thread, stackTrace, msg})
                : ((thread != null ? (thread + SystemCompat.lineSeparator) : "")
                + (stackTrace != null ? (stackTrace + SystemCompat.lineSeparator) : "")
                + msg));
    }
Print a log in a new line internally.

@param logLevel the log level of the printing log
@param msg      the message you would like to log
android/android_framework/base/src/main/java/com/elvishew/xlog/Logger.java