In meinen Projektklassen habe ich java.util.logging.Logger
verwendet und verschiedene Protokollausgaben in meinem Code hinzugefügt, mit verschiedenen Log-Ebenen, dh.Gradle Logging Output Levels
src/main/java/Run.java
import java.util.logging.Level;
import java.util.logging.Logger;
public class Run{
public static void main(String args[]){
System.out.println("Hello World");
logger.log(Level.CONFIG, "Just some config info");
Logger logger = Logger.getLogger(Run.class.getName());
logger.log(Level.INFO, "Just logging some info");
logger.log(Level.FINE, "Fine logging");
logger.log(Level.FINER, "Finer logging");
logger.log(Level.WARNING, "This is a warning log!");
}
}
Zur Zeit, als ich gradle -i test
alle Log-Meldungen mit dem Level.INFO
definiert sind, gezeigt, aber keiner der Config laufen, zu warnen oder feine Meldungen ausgegeben.
Ich habe versucht, meine build.gradle Datei zu aktualisieren, so dass:
apply plugin: 'java'
apply plugin:'application'
mainClassName = "Run"
repositories {
mavenCentral()
}
dependencies {
testCompile "junit:junit:4.11"
}
run{
systemProperties = ['java.util.logging.config.file' : 'logging.properties']
}
ich aufgenommen haben:
systemProperties = ['java.util.logging.config.file' : 'logging.properties']
Dann erstellt /src/main/resource/Protokollierung. Eigenschaften
handlers= java.util.logging.ConsoleHandler
.level= CONFIG
java.util.logging.ConsoleHandler.level = FINER
java.util.logging.ConsoleHandler.formatter = java.util.logging.SimpleFormatter
Running:
gradle run
ich:
:compileJava UP-TO-DATE
:processResources UP-TO-DATE
:classes UP-TO-DATE
:run
Hello World
BUILD SUCCESSFUL
Und wenn gradle -i-läufer laufen ich: erfolgreich gestartet Prozess 'Befehl' /Library/Java/JavaVirtualMachines/jdk1.8.0_20 .jdk/Contents/Home/bin/java '' Hallo Welt : run (Thread [main, 5, main]) abgeschlossen. Dauerte 0,202 Sekunden.
BUILD SUCCESSFUL
dh. keine Protokollierungsinformationen. Doch die system.properties Kommentierung aus innerhalb der Lauf Aufgabe und wieder laufen gradle -i laufen ich:
Successfully started process 'command '/Library/Java/JavaVirtualMachines/jdk1.8.0_20.jdk/Contents/Home/bin/java''
Hello World
Nov 05, 2014 12:07:42 PM Run main
INFO: Just logging some info
Nov 05, 2014 12:07:42 PM Run main
WARNING: This is a warning log!
:run (Thread[main,5,main]) completed. Took 0.229 secs.
BUILD SUCCESSFUL
Eintrag Warnstufe Protokolle, aber nicht die feinen oder feineren.
tldr;
Wie bekomme ich die Config, feine & feinere Level-Protokolle auf die Konsole in einem generischen Gradle Java-Projekt zu protokollieren?
Wenn Sie SLF4J mit Logback verwenden, beachten Sie, dass die Schnittstelle 'org.slf4j.Logger' nicht über die Methode' setLevel' verfügt. Aber 'ch.qos.logback.classic.Logger' implementiert diese Schnittstelle und verfügt über diese Methode. Um den 'Logger' zu erstellen, müssen Sie daher die letztere Klasse importieren und dann wie folgt umwandeln: 'Logger LOGGER = (Logger) LoggerFactory.getLogger (MyClass.class)' –