2016-03-21 10 views
3

Ich benutze Gradle-2.11 und ich bin nicht in der Lage, eine Möglichkeit zum Erstellen von Protokolldateien zu finden, die Debug-Level-Informationen protokolliert. Ich möchte es nicht über die Befehlszeile ausführen, indem ich die Protokolle in die Protokolldatei umleite. Ich möchte Gradle-Code genauso wie Apache Ant's 'Record'-Task, damit ich diesen Code in meine build.gradle-Datei schreiben kann, wo auch immer ich Logs erstellen möchte.Wie erstellt man Protokolldateien in Gradle

Für Ex: Wenn ich diese Ameise Aufgabe konvertieren wollen, Gradle dann würde, was der Code sein:

<record name="${BuildLogPath}/${BuildLogFile}" append="no" loglevel="verbose" action="start"/> 
+0

Ich glaube Gradle nicht unterstützt dies im Moment. Ich bin mir sicher, dass es getan werden kann, also hoffentlich wird jemand eine Antwort geben! – Jolta

Antwort

0

Gradle mit Ant (https://docs.gradle.org/2.11/userguide/ant.html)

Es ist wirklich schön integriert nicht automatisch zeichne jeden Schritt auf. Ich wusste nicht, dass du das fragst. Das unten aktualisierte wird die Ausgabe erzeugen und Sie können manuell protokollieren.

ant.record(name: "${BuildLogPath}/${BuildLogFile}", append:false, loglevel: "verbose", action: "start") 
ant.echo("start logging") 

//... do stuff here 

ant.echo(message: "end logging") 
ant.record(name: "${BuildLogPath}/${BuildLogFile}", append:false, loglevel: "verbose", action: "stop") 

Dies kann mehr von dem, was Sie fragen. Hinweis: Dies ist etwas, das ich etwas von diesem ausgezeichneten Beispiel angepasst: http://themrsion.blogspot.com/2013/10/gradle-logging-writing-to-log-to-file.html

import org.gradle.logging.internal.* 
String currentDate = new Date().format('yyyy-MMM-dd_HH-mm-ss-S') 
String loggingDirectory = "${rootDir}/build/logs" 
mkdir("${loggingDirectory}") 
File gradleBuildLog = new File("${loggingDirectory}/${currentDate}_gradleBuild.log") 

gradle.services.get(LoggingOutputInternal).addStandardOutputListener (new StandardOutputListener() { 
    void onOutput(CharSequence output) { 
     gradleBuildLog << output 
    } 
}) 

gradle.services.get(LoggingOutputInternal).addStandardErrorListener (new StandardOutputListener() { 
    void onOutput(CharSequence output) { 
     gradleBuildLog << output 
    } 
}) 
+0

Vielen Dank für die Antwort, aber ich bin eigentlich Migrieren der aktuellen Ant-Code nach Gradle, also wieder mit Ant ist keine gute Option für mich. – prachi309

+0

Außerdem erstellt diese Methode die Protokolldatei, aber sie ist leer. Fehle ich etwas? – prachi309

Verwandte Themen