Я попытался записать ошибки компиляции в файл, используя данные, указанные по ссылке ниже, https://discuss.gradle.org/t/how-do-i-add-an-appender-to-the-gradle-logger-via-a-plugin/3733/2, но он также всегда добавляет все предыдущие журналы. Мне нужен только текущий сбой для входа (попытался очистить текст в файле, который также не помог). Также однажды добавленный слушатель я не мог удалить это. Можете ли вы объяснить, как этого добиться? Ниже мой код
def buildLogDir = "${rootDir}/cireports"
def buildLog = new File("${buildLogDir}/errorlogs/XXX.txt")
def listen = new StandardOutputListener () {
void onOutput(CharSequence output) {
buildLog << output
}
}
if(new File(buildLogDir).exists()) {
gradle.services.get(LoggingOutputInternal).removeStandardErrorListener (listen)
new File(buildLogDir).deleteDir()
}
//This task is triggered when build failure occur
gradle.buildFinished { buildResult ->
if (buildResult.failure) {
mkdir("${buildLogDir}/errorlogs")
//gradle.services.get(LoggingOutputInternal).addStandardErrorListener (listen) }
}
По умолчанию я удалю слушателя. Если есть проблемы с компиляцией, добавим слушателя. После добавления прослушивателя даже после удаления кода он пытается записать ошибку в файл. Я подозреваю, что способ, которым я удалил слушателя, был неправильным, может кто-нибудь помочь мне достигнуть этого? Это будет высоко ценится.
Примечание: Даже после удаления прослушивателя отображается ошибка «Не удалось уведомить стандартный выходной прослушиватель»