static { boolean disabled; if (SystemPropertyUtil.get("io.netty.noResourceLeakDetection") != null) { boolean disabled = SystemPropertyUtil.getBoolean("io.netty.noResourceLeakDetection", false); logger.debug("-Dio.netty.noResourceLeakDetection: {}", Boolean.valueOf(disabled)); logger.warn( "-Dio.netty.noResourceLeakDetection is deprecated. Use '-D{}={}' instead.", "io.netty.leakDetectionLevel", DEFAULT_LEVEL.name().toLowerCase()); } else { disabled = false; } Level defaultLevel = disabled ? Level.DISABLED : DEFAULT_LEVEL; String levelStr = SystemPropertyUtil.get("io.netty.leakDetectionLevel", defaultLevel.name()) .trim() .toUpperCase(); Level level = DEFAULT_LEVEL; for (Level l : EnumSet.allOf(Level.class)) { if ((levelStr.equals(l.name())) || (levelStr.equals(String.valueOf(l.ordinal())))) { level = l; } } level = level; if (logger.isDebugEnabled()) { logger.debug("-D{}: {}", "io.netty.leakDetectionLevel", level.name().toLowerCase()); } }
public ResourceLeak open(T obj) { Level level = level; if (level == Level.DISABLED) { return null; } if (level.ordinal() < Level.PARANOID.ordinal()) { if (this.leakCheckCnt++ % this.samplingInterval == 0L) { reportLeak(level); return new DefaultResourceLeak(obj); } return null; } reportLeak(level); return new DefaultResourceLeak(obj); }
/** * Checks whether passed Level is equal or higher than level set in the class * * @param level - Level instance * @return true if level is higher or equal, false otherwise */ private boolean isLoggable(Level level) { return this.level.ordinal() <= level.ordinal(); }