Как сделать плагин Jenkins настраиваемым в общей библиотеке? - PullRequest
0 голосов
/ 18 октября 2018

Если быть точным, у меня есть этот код в моей общей библиотеке 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(...) в начале сборки, поскольку она также не может быть решена.

...