2017-11-27 3 views
0

Ich habe ein Maven-Projekt erstellt, das Testfälle und die entsprechende Funktionalität enthält. Die gesamte Funktionalität für Validierungsprüfungen wurde unter src/main/java abgelegt. Auch Testfälle sind Teil von src/test/java. Ich habe unter log4j.properties in src/main/resources platziert.Keine Protokolle aus Maven-Projekt generieren

# Root logger option 
log4j.rootLogger=info, file,stdout 

# Direct log messages to a log file 
log4j.appender.file=org.apache.log4j.RollingFileAppender 
log4j.appender.file.File=/tmp/reports/logs/log.out 
log4j.appender.file.MaxFileSize=10MB 
log4j.appender.file.MaxBackupIndex=10 
log4j.appender.file.layout=org.apache.log4j.PatternLayout 
log4j.appender.file.layout.ConversionPattern=%d{yyyy-MM-dd HH:mm:ss} %-5p %c{1}:%L - %m%n 

#To console 
log4j.appender.stdout=org.apache.log4j.ConsoleAppender 
log4j.appender.stdout.Target=System.out 
log4j.appender.stdout.layout=org.apache.log4j.PatternLayout 
log4j.appender.stdout.layout.ConversionPattern=%d{yyyy-MM-dd HH:mm:ss} %-5p %c{1}:%L - %m%n 

Auch in jedem der Klassendateien habe ich zusammen mit unten Importen unterhalb der Linie hinzugefügt:

import org.slf4j.Logger; 
import org.slf4j.LoggerFactory; 

Initialisierung der Protokolle:

static Logger log = LoggerFactory.getLogger(<class name>.class); 

und log.info("") ist mit Protokollen zu erstellen.

Auch in pom.xml, unter Abhängigkeiten hinzugefügt:

<dependency> 
     <groupId>log4j</groupId> 
     <artifactId>log4j</artifactId> 
     <version>1.2.17</version> 
    </dependency> 
    <!-- https://mvnrepository.com/artifact/org.slf4j/slf4j-api --> 
    <dependency> 
     <groupId>org.slf4j</groupId> 
     <artifactId>slf4j-api</artifactId> 
     <version>1.7.25</version> 
    </dependency> 
    <!-- https://mvnrepository.com/artifact/org.slf4j/slf4j-simple --> 
    <dependency> 
     <groupId>org.slf4j</groupId> 
     <artifactId>slf4j-simple</artifactId> 
     <version>1.7.25</version> 
     <scope>test</scope> 
    </dependency> 
    <dependency> 
     <groupId>org.slf4j</groupId> 
     <artifactId>slf4j-log4j12</artifactId> 
     <version>1.7.25</version> 
    </dependency> 

Aber ich Protokolle sehen sind sowohl in der Konsole nicht so gut wie in der Datei /tmp/reports/logs/log.out aber die Protokolldatei zu erzeugen /tmp/reports/logs/log.out erfolgreich erstellt wird, aber keine Protokolle Außerdem werden keine Protokolle in der Konsole erstellt.

Ich sehe Protokolle auf Konsole, aber sie sind definitiv nicht in log4j.appender.stdout.layout.ConversionPattern=%d{yyyy-MM-dd HH:mm:ss} %-5p %c{1}:%L - %m%n Format.

Ich gehe davon aus, dass sie auf Konsole produziert werden, weil ich log4j bezogene Gläser importiert habe.

Kann jemand bitte dabei helfen?

+0

Wenn es nur für Testfälle ist, wäre es nicht einfacher, einfach slf4j-simple zu verwenden? –

+0

Ich habe auch slf4j-simple jar verwendet, aber es werden immer noch keine Logs generiert –

+0

slf4j-simple dient nicht zum Generieren von Protokollen, sondern zur Ausgabe von Log-Statements an die Standardausgabe, damit Sie sehen können, was während des Komponententests passiert. nichts mehr. –

Antwort

0

Ich verwendete Log4j Logger anstelle von Slf4j und Protokolle wurden generiert. Es ist ein Work around verwendet.

import org.apache.log4j.Logger; 

static Logger log = Logger.getLogger(KNMIRules.class); 
Verwandte Themen