public LogLevelConverter() { logLevels = Arrays.stream(Level.values()).map(Level::name).collect(Collectors.toSet()); }
/** * Convert any string representation of a logging level to a {@code LogWriterLevel} int value. * * <p> * convert a string to logwriter code, either log4j level or logwriter string, or a level-xxx */ public static int getLogWriterLevel(final String anyLevelName) { if (anyLevelName == null) { throw new IllegalArgumentException("LevelName cannot be null"); } if (ANY_NAME_TO_LOGWRITERLEVEL.get(anyLevelName.toUpperCase()) != null) { return ANY_NAME_TO_LOGWRITERLEVEL.get(anyLevelName.toUpperCase()).intLevel(); } if (anyLevelName.toLowerCase().startsWith("level-")) { String levelValue = anyLevelName.toLowerCase().substring("level-".length()); return Integer.parseInt(levelValue); } String values = Arrays.stream(Level.values()).sorted().map(Level::name).collect(Collectors.joining(", ")); throw new IllegalArgumentException( "Unknown log-level \"" + anyLevelName + "\". Valid levels are: " + values + "."); } }
@Test public void testCreateDiscardingRouterThresholdLevelCustomizable() throws Exception { System.setProperty(AsyncQueueFullPolicyFactory.PROPERTY_NAME_ASYNC_EVENT_ROUTER, AsyncQueueFullPolicyFactory.PROPERTY_VALUE_DISCARDING_ASYNC_EVENT_ROUTER); for (final Level level : Level.values()) { System.setProperty(AsyncQueueFullPolicyFactory.PROPERTY_NAME_DISCARDING_THRESHOLD_LEVEL, level.name()); assertEquals(level, ((DiscardingAsyncQueueFullPolicy) AsyncQueueFullPolicyFactory.create()). getThresholdLevel()); } }
/** * Return the Log4j Level associated with the int level. * * @param intLevel * The int value of the Level to return. * @return The Level. * @throws java.lang.IllegalArgumentException if the Level int is not registered. */ public static Level toLevel(final int intLevel) { for (Level level : Level.values()) { if (level.intLevel() == intLevel) { return level; } } throw new IllegalArgumentException("Unknown int level [" + intLevel + "]."); }
@Override public Level convert(String value) { Level l = Level.toLevel(value); if (l == null) { throw new ParameterException("Value " + value + " cannot be converted to a log4j level. " + "Available values are: " + Arrays.toString(Level.values())); } return l; } }
return INSTANCE; for (final Level level : Level.values()) { if (!levelMap.containsKey(level)) { final String left = left(level, length);
final Level level = Level.toLevel(key, null); if (level == null) { LOGGER.error("Unknown level name: {}; use one of {}", key, Arrays.toString(Level.values())); } else { levelStyles.put(level, value);