[Java lista] printStackTrace

Loxy Gento loxygento at gmail.com
2009. Okt. 23., P, 19:15:24 CEST


2009/10/22 Laja <laja at freemail.hu>:
> Hali!
>
> Log4j loggernél hogyan lehet szépen megoldani, hogy a logba a StackTrace
> is belekerüljön?
>
> Én csak a kézi megoldást találtam:
>  logger.error(ioexc.toString());
>  //StackTrace kiírása
>   StringBuilder st=new StringBuilder();
>  StackTraceElement[] ste=ioexc.getStackTrace();
>  for(int i=0;i<ste.length;i++){
>      st.append(ste[i].toString()+"\n");
>  }
>   logger.error(st_str.toString());
>
> Ezt mindenhova berakni kissé macerás. Vagy írjak mindenhova saját
> logosztályt?
Az AOP (Aspect Oriented Programming) erre van kitalálva.


Pl AspectJ - vel:

import org.apache.log4j.Level;
import org.apache.log4j.Logger;
import org.aspectj.lang.JoinPoint;
import org.aspectj.lang.Signature;
/**
 * Logger aspect.
 *
 */
public aspect Logging
{
    /**
     * The logger instance.
     */
    Logger _logger = Logger.getLogger("logger");

    /**
     * Pointcut of stack trace printing.
     */
    pointcut stackTracePrinting()
    : call(void java.lang.Throwable.printStackTrace()) && !within(Logging);

    /**
     * Redirects stack trace printing into logger.
     */
    void around() : stackTracePrinting() {
        if (_logger.isEnabledFor(Level.ERROR))
        {
            _logger.log(Level.ERROR, (Throwable)*thisJoinPoint*
.getTarget());
        }
    }
}

loxy
--------- következõ rész ---------
Egy csatolt HTML állomány át lett konvertálva...
URL: http://javagrund.hu/pipermail/javalist/attachments/20091023/f9cb9005/attachment.html 


További információk a(z) Javalist levelezőlistáról