[Java lista] printStackTrace
biziclop
biziclop at gmail.com
2009. Okt. 23., P, 19:25:25 CEST
O jaj.
2009/10/23 Loxy Gento <loxygento at gmail.com>:
> 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
>
> _______________________________________________
> Javalist mailing list
> Javalist at javagrund.hu
> http://javagrund.hu/mailman/listinfo/javalist
>
>
További információk a(z) Javalist levelezőlistáról