2014-10-21 11 views
5

Vorrei avere le informazioni di registrazione Log4j2 disponibili nei report TestNG per tutti i casi di test.Come includere i messaggi Log4j2 nei report TestNG

TestNG utilizza una classe di registrazione speciale denominata Reporter.java che tiene traccia dell'output del registro e lo salva nei risultati XML.

In log4j è stato possibile creare semplicemente un'implementazione di appender che indirizza a Reporter e registrarlo.

Con la nuova API di logger in Log4j2 è stato difficile trovare informazioni su come ottenerlo. Ho alcune informazioni per fare questo usando Log4j ma non con Log4j2.

+0

Hai fatto il google? http://goo.gl/UyUqN4 – rinuthomaz

+1

Ho fatto ma invano – Praveen

+0

@rinuthomaz log4j2 non sembra essere la domanda. L'integrazione con testng fa. – AnthonyJClink

risposta

-2
import org.apache.commons.logging.Log; 
import org.apache.commons.logging.LogFactory; 

aggiungere questo in pom.xml

<dependency> 
     <groupId>log4j</groupId> 
     <artifactId>log4j</artifactId> 
     <version>1.2.16</version> 
     <scope>compile</scope> 
    </dependency> 

quindi è possibile utilizzare log.info o log.error ecc ...

+0

Prova e fammi sapere ... –

+0

domanda è su log4j2 – SkyWalker

+0

ohhh pensavo che fossero tutti uguali ... scusa –

2

Da quello che posso dirvi solo bisogno di implementare un semplice Appender. Qualcosa come:

@Plugin(name="Reporter", category ="Core", elementType="appender", printObject=true) 
public class ReporterAppender extends AbstractAppender { 

    private ReporterAppender(final String name, final Layout layout) { 
     super(name, null, layout, false); 
    } 

    @Override 
    public void append(final LogEvent event) { 
     final Layout<? extends Serializable> layout = getLayout(); 
     if (layout != null && layout instanceof AbstractStringLayout) { 
      Reporter.log(((AbstractStringLayout) layout).toSerializable(event)); 
     } else { 
      Reporter.log(event.getMessage().getFormattedMessage();   } 

    @PluginFactory 
    public static ReporterAppender createAppender(
     @PluginAttribute("name") @Required(message = "A name for the Appender must be specified") final String name, 
     @PluginElement("Layout") Layout<? extends Serializable> layout) { 
     return new ReporterAppender(name, layout); 
    } 
} 
+0

@Praveen per favore accetta questa risposta. – AnthonyJClink

+1

D'accordo, la risposta di Ralph merita il bonus. –

Problemi correlati