The proper optimization here is to use the LDC byte code that takes a constant class, rather than the string variant and then class loading. The original AspectJ used the string form because LDC didn't take a class originally. Over the years a few places have been updated but not everywhere ( thisEnclosingJoinPoint is one of them that hasn't been done I think). Let me have a look at what I can do. For a while we had to tolerate both modes because LDC class was quite new, but it has been there so long now I think we can assume you are on a JVM that will have it.
cheers, Andy On 10 January 2018 at 01:42, Fabian Bergmark <fabian.bergm...@gmail.com> wrote: > I'm using both AspectJ and Proguard in a project. On of my aspects > inserts MDC-information in logging messages, including source location > and method: > > void around() : call(void org.slf4j.Logger.trace(..)) || call(void > org.slf4j.Logger.debug(..)) || call(void org.slf4j.Logger.info(..)) || > call(void org.slf4j.Logger.warn(..)) || call(void > org.slf4j.Logger.error(..)) { > try (MDC.MDCCloseable c3 = > MDC.putCloseable("logging_aspect::location", > thisJoinPoint.getSourceLocation().toString()); > MDC.MDCCloseable c4 = > MDC.putCloseable("logging_aspect::method", > thisEnclosingJoinPointStaticPart.getSignature().toString())) { > proceed(); > } > } > > However, when enabling obfuscation in proguard, this results in log > messages like: > > "mdc" : { > "logging_aspect::method" : "void > java.lang.ClassNotFoundException.onCreateConnectionChannelRespo > nse(ClassNotFoundException, > CreateConnectionChannelError, ConnectionStatus)", > "logging_aspect::location" : "File.java:299" > } > > I think there should be a way to access the Signature at the time of > compilation. This would also be faster (?) than looking up classes > during runtime. > _______________________________________________ > aspectj-users mailing list > aspectj-users@eclipse.org > To change your delivery options, retrieve your password, or unsubscribe > from this list, visit > https://dev.eclipse.org/mailman/listinfo/aspectj-users >
_______________________________________________ aspectj-users mailing list aspectj-users@eclipse.org To change your delivery options, retrieve your password, or unsubscribe from this list, visit https://dev.eclipse.org/mailman/listinfo/aspectj-users