apereo/cas · info
out.warn(ASCII_ART_LOGGER_MARKER, message)
Error message
out.warn(ASCII_ART_LOGGER_MARKER, message)
What it means
AsciiArtUtils.printAsciiArtWarning renders an ASCII-art banner (with any additional text) at WARN level through the supplied logger. This is not a failure: it is a deliberate, visually loud warning used during startup (e.g. deprecated settings, insecure configuration). The message is the banner itself, so log scrapers will see the art rather than a normal sentence.
Solutions
- Read the additional text accompanying the banner and act on the underlying configuration issue it announces
- Fix the flagged configuration so the banner no longer prints on startup
- If only the noise is the problem, adjust logger levels for ASCII_ART_LOGGER_MARKER while still fixing the underlying issue
Defensive patterns
Strategy: validation
Prevention
- Read the additional text next to the banner at every startup; it flags real configuration problems
- Configure multi-line log handling in your aggregator so ASCII banners are not truncated or misparsed
- Treat the banner as a release/upgrade checklist item and fix its cause before production
When it happens
Trigger: Any CAS startup/configuration code calling AsciiArtUtils.printAsciiArtWarning(...) to surface a critical operator-facing notice, e.g. insecure or deprecated configuration detected at boot.
Common situations: First boot after an upgrade where CAS flags deprecated settings; running with development/insecure defaults; log aggregation systems flagging multi-line ASCII output as anomalies or truncating it.
Related errors
- Unable to build a MongoDb client without any hosts/servers…
- subordinate directory
- subordinate directory
- Cannot read/load from subordinate directory
- Invalid unique index: must be >= 0 and < 256
AI-assisted analysis of apereo/cas@e7288fc434 (2026-09-08).
Data as JSON: /api/errors/d4783c0c217d6db4.
Report an issue: GitHub.
Appendix: source
Thrown at core/cas-server-core-util-api/src/main/java/org/apereo/cas/util/AsciiArtUtils.java:62
}
out.println(ANSI_RESET);
}
/**
* Print ascii art.
*
* @param out the out
* @param additional the additional
*/
public static void printAsciiArtWarning(final Logger out, final String additional) {
val ascii = """
____ ____ __ ____\s
/ ___)(_ _)/ \\( _ \\
\\___ \\ )( ( O )) __/
(____/ (__) \\__/(__) \s
""";
val message = ANSI_BOLD + "\n\n".concat(ascii).concat(additional) + ANSI_RESET;
out.warn(ASCII_ART_LOGGER_MARKER, message);
}
/**
* Print ascii art info.
*
* @param out the out
* @param additional the additional
*/
public static void printAsciiArtReady(final Logger out, final String additional) {
val ascii = """
____ ____ __ ____ _ _\s
( _ \\( __) / _\\ ( \\( \\/ )
) / ) _) / \\ ) D ( ) /\s
(__\\_)(____)\\_/\\_/(____/(__/ \s
""";
val message = ANSI_BOLD + "\n\n".concat(ascii).concat(additional).concat("\n") + ANSI_RESET;
out.info(ASCII_ART_LOGGER_MARKER, message);
}View on GitHub (pinned to e7288fc434)