
Hi, i'm implementing a loggin via AspectJ in a Maven project. My aspect class is something like this... public aspect TraceMethodCalls { static Marker ASPECTJ_TRACE_ENTER = MarkerFactory.getMarker("ASPECTJ_TRACE_ENTER"); final Logger logger = LoggerFactory.getLogger(TraceMethodCalls.class); TraceMethodCalls() { } pointcut traceMethods() //give me all method calls of every class with every visibility : (execution(* *.*(..)) //give me also constructor calls || execution(*.new(..))) && !execution(* toString(..)) && !execution(* hashCode(..)) //stop recursion don't get method calls in this aspect class itself && !within(TraceMethodCalls); //advice before: do something before method is really executed before() : traceMethods() { if (logger.isDebugEnabled()) { //get info about captured method and log it Signature sig = thisJoinPointStaticPart.getSignature(); logger.trace(ASPECTJ_TRACE_ENTER, "---> [" + sig.toShortString() + "]"); } } //advice before: do something before method is really executed after() returning (Object o): traceMethods() { if (logger.isDebugEnabled()) { //get info about captured method and log it Signature sig = thisJoinPointStaticPart.getSignature(); logger.trace(ASPECTJ_TRACE_ENTER, "<--- [" + sig.toShortString() + "]"); } } and logback appender <appender name="ASPECTJ_TRACE_ENTER" class="ch.qos.logback.core.rolling.RollingFileAppender"> <filter class="ch.qos.logback.core.filter.EvaluatorFilter"> <evaluator class="ch.qos.logback.classic.boolex.JaninoEventEvaluator"> <expression> (marker != null) && (marker.contains("ASPECTJ_TRACE_ENTER")) </expression> </evaluator> <onMatch>ACCEPT</onMatch> <onMismatch>DENY</onMismatch> </filter> <prudent>${prudent}</prudent> <!-- full stacktrace para las excepciones --> <encoder class="ch.qos.logback.classic.encoder.PatternLayoutEncoder"> <Pattern>%date %-5level - cn=%contextName - [%thread] - %message%n</Pattern> </encoder> <rollingPolicy class="ch.qos.logback.core.rolling.TimeBasedRollingPolicy"> <FileNamePattern>${USER_HOME}/${backupDir}aspectj.enter_exit.%d${patronRolling}</FileNamePattern> <MaxHistory>${maxHistory}</MaxHistory> </rollingPolicy> </appender> I see that that support to NDC is disabled in logback, how could i implement a TAB of this messages without NCD? --->Method1 ------>Method2 --------->Method3 <---------Method3 <------Method2 <---Method1 Thanks. -- Jose Juan Montiel Martinez Eurobits Technologies Calle Musgo 3, 1ª Planta 28023 Madrid T +34-917080300 F +34-913077480 josejuan.montiel@eurobits.es http://www.eurobits.com
participants (1)
-
José Juan Montiel