2016-03-21 40 views
3

我正在使用Gradle-2.11,但無法找到創建記錄調試級別信息的日誌文件的方法。我不想通過命令行將日誌重定向到日誌文件。我想要Gradle代碼就像Apache Ant的'record'任務一樣,以便我可以將該代碼放在我想要創建日誌的build.gradle文件中。如何在Gradle中創建日誌文件

對於例如:如果我想這螞蟻任務轉換到搖籃,那麼這將是代碼:

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

我不相信搖籃目前支持此功能。不過,我確信它可以完成,所以希望有人會提供一個答案! – Jolta

回答

0

搖籃真的很好集成了螞蟻(https://docs.gradle.org/2.11/userguide/ant.html

它並不會自動記錄每一步。我沒有意識到這是你問的問題。以下更新將產生輸出,您可以手動記錄。

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") 

這可能會做更多的問題。注:這是我從這個很好的例子稍作改動: 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

感謝您的回覆,但我實際上將當前的Ant代碼遷移到Gradle,所以再次使用Ant對我來說不是一個好選擇。 – prachi309

+0

此外,此方法正在創建日誌文件,但它是空的。我錯過了什麼嗎? – prachi309