public static Object maybeMasked(Object value) { return GlobalCfg.uniformOutput() ? "<?>" : value; }
public static boolean is(String name) { return "true".equalsIgnoreCase(get(name)); }
public static <T> T normalOrHeavy(T normal, T heavy) { return GlobalCfg.is("RAPIDOID_TEST_HEAVY") ? heavy : normal; }
public static synchronized void reset() { setLogLevel(GlobalCfg.quiet() ? LogLevel.ERROR : LogLevel.INFO); LogStats.reset(); }
private static void activateRootConfig() { U.must(Env.isInitialized()); String root = Env.root(); if (U.notEmpty(root) && !APP.has("jar")) { APP.set("jar", Msc.path(root, "app.jar")); } String appJar = APP.entry("jar").str().getOrNull(); if (U.notEmpty(appJar)) { ClasspathUtil.appJar(appJar); } boolean fancyByDefault = Env.dev() || System.console() != null; Log.options().fancy(LOG.entry("fancy").bool().or(fancyByDefault)); LogLevel logLevel = LOG.entry("level").to(LogLevel.class).getOrNull(); if (logLevel != null && !Env.test()) { Log.setLogLevel(logLevel); } if (GlobalCfg.quiet()) { Log.setLogLevel(LogLevel.ERROR); // overwrite the configured log level in quiet mode } }
public static List<String> notes() { List<String> notes = U.list(); if (Msc.dockerized()) notes.add("Dockerized"); if (GlobalCfg.uniformOutput()) notes.add("Uniform output"); return notes; }
public static boolean has(String name, String value) { return U.safe(get(name)).equalsIgnoreCase(value); } }
public static synchronized void reset() { setLogLevel(GlobalCfg.quiet() ? LogLevel.ERROR : LogLevel.INFO); LogStats.reset(); }
public static boolean quiet() { return is("QUIET"); }
private static String code(String code, String text) { return Log.options().fancy() && !GlobalCfg.uniformOutput() ? "\33[" + code + "m" + text + "\33[0m" : text; }
private boolean substitutePlaceholders(final Map<String, String> flat, final Set<String> changedKeys) { final BoolWrap changed = new BoolWrap(); for (Map.Entry<String, String> e : U.map(flat).entrySet()) { final String cfgKey = e.getKey(); String val = e.getValue(); if (val.contains("${")) { val = Str.replace(val, "\\$\\{([^\\}]+)\\}", src -> { String name = src[1]; Object value = flat.get(name); if (value == null) { value = GlobalCfg.get(name); } if (value == null) { value = getSpecialValue(name); } U.must(value != null, "Cannot find configuration entry '%s' for key '%s'!", name, cfgKey); changed.value = true; changedKeys.add(cfgKey); return value.toString(); }); flat.put(cfgKey, val); } } return changed.value; }
public static boolean quiet() { return is("QUIET"); }
private static Callable<Logger> createLoggerFactory() { if (!GlobalCfg.uniformOutput() && !hasClass("org.rapidoid.log.slf4j.RapidoidLoggerFactory") && hasClass("org.slf4j.LoggerFactory") && hasClass("org.slf4j.impl.StaticLoggerBinder")) { return createSlf4jLoggerFactory(); } else { return createNullLoggerFactory(); } }
public static boolean is(String name) { return "true".equalsIgnoreCase(get(name)); }
private void addDefaultHeaders(Channel ctx, boolean isKeepAlive, MediaType contentType) { if (!isKeepAlive || MANDATORY_HEADER_CONNECTION) { ctx.write(isKeepAlive ? CONN_KEEP_ALIVE : CONN_CLOSE); } if (MANDATORY_HEADER_SERVER) { ctx.write(SERVER_HEADER); } if (MANDATORY_HEADER_DATE) { ctx.write(DATE_IS); if (!GlobalCfg.uniformOutput()) { ctx.write(Dates.getDateTimeBytes()); } else { ctx.write(UNIFORM_DATE); } ctx.write(CR_LF); } if (MANDATORY_HEADER_CONTENT_TYPE) { ctx.write(contentType.asHttpHeader()); } }
public static boolean has(String name, String value) { return U.safe(get(name)).equalsIgnoreCase(value); } }
private static Callable<Logger> createLoggerFactory() { if (!GlobalCfg.uniformOutput() && !hasClass("org.rapidoid.log.slf4j.RapidoidLoggerFactory") && hasClass("org.slf4j.LoggerFactory") && hasClass("org.slf4j.impl.StaticLoggerBinder")) { return createSlf4jLoggerFactory(); } else { return createNullLoggerFactory(); } }
private void addDefaultHeaders(Channel ctx, boolean isKeepAlive, MediaType contentType) { if (!isKeepAlive || MANDATORY_HEADER_CONNECTION) { ctx.write(isKeepAlive ? CONN_KEEP_ALIVE : CONN_CLOSE); } if (MANDATORY_HEADER_SERVER) { ctx.write(SERVER_HEADER); } if (MANDATORY_HEADER_DATE) { ctx.write(DATE_IS); if (!GlobalCfg.uniformOutput()) { ctx.write(Dates.getDateTimeBytes()); } else { ctx.write(UNIFORM_DATE); } ctx.write(CR_LF); } if (MANDATORY_HEADER_CONTENT_TYPE) { ctx.write(contentType.asHttpHeader()); } }