@Override public Object invoke(Object proxy, Method method, Object[] args) throws Throwable { String name = method.getName(); Class<?> declaringClass = method.getDeclaringClass(); if (declaringClass == LoggerExtensions.class) { try { return method.invoke(extension, args); } catch (InvocationTargetException ite) { throw ite.getCause(); } } try { if ("getName".equals(name)) { return logName; } if (isEnabledFnNameToLogLevel.containsKey(name)) { LogLevel l = isEnabledFnNameToLogLevel.get(name); return settings.enabledLevels.contains(l); } if (logFnNameToLogLevel.containsKey(name)) { LogLevel l = logFnNameToLogLevel.get(name); String s = formatLogMessage(method, args); LogMessage message = new LogMessage(logName, l, s); extension.record(message); } return null; } finally { callDelegate(method, args); } }
@Override public Object invoke(Object proxy, Method method, Object[] args) throws Throwable { String name = method.getName(); Class<?> declaringClass = method.getDeclaringClass(); if (declaringClass == LoggerExtensions.class) { try { return method.invoke(extension, args); } catch (InvocationTargetException ite) { throw ite.getCause(); } } try { if ("getName".equals(name)) { return logName; } if (isEnabledFnNameToLogLevel.containsKey(name)) { LogLevel l = isEnabledFnNameToLogLevel.get(name); return settings.enabledLevels.contains(l); } if (logFnNameToLogLevel.containsKey(name)) { LogLevel l = logFnNameToLogLevel.get(name); String s = formatLogMessage(method, args); LogMessage message = new LogMessage(logName, l, s); extension.record(message); } return null; } finally { callDelegate(method, args); } }