Если быть точным, у меня есть этот код в моей общей библиотеке Jenkins:
имя файла /vars/log.groovy
def call(msg, level = 'I') {
def levelString = '[INFO] '
switch (level) {
case 'D' :
levelString = '[DEBUG] '
break
case 'W' :
levelString = '[WARNING] '
break
case 'E' :
levelString = '[ERROR] '
break
}
echo levelString + msg
}
Как вы можете видетьэто для регистрации.Теперь я использую этот журнал каждый раз в разных шагах, однако я хотел иметь возможность установить уровень журнала в Jenkinsfile
, поэтому я изменил приведенный выше код на что-то вроде этого:
def logLevel = 'E'
public def setLogLevel(level) {
this.logLevel = level
}
def call(msg, level = 'I') {
def levelString = '[INFO] '
switch (level) {
case 'D' :
levelString = '[DEBUG] '
break
case 'W' :
levelString = '[WARNING] '
break
case 'E' :
levelString = '[ERROR] '
break
}
//just as an example without considering the hierarchy of levels
if(logLevel == level) {
echo levelString + msg
}
}
Однако этот код не работает.В jenkins ошибка говорит о том, что она не может разрешить logLevel
, и при этом я не могу вызвать setLogLevel(...)
в начале сборки, поскольку она также не может быть решена.