github.com/jfrog/jfrog-cli-go@v1.22.1-0.20200318093948-4826ef344ffd/utils/log/log.go (about) 1 package log 2 3 import ( 4 "github.com/jfrog/jfrog-cli-go/utils/cliutils" 5 "github.com/jfrog/jfrog-client-go/utils" 6 "github.com/jfrog/jfrog-client-go/utils/errorutils" 7 "github.com/jfrog/jfrog-client-go/utils/log" 8 "os" 9 "path/filepath" 10 "strconv" 11 "time" 12 ) 13 14 func GetCliLogLevel() log.LevelType { 15 switch os.Getenv(cliutils.LogLevel) { 16 case "ERROR": 17 return log.ERROR 18 case "WARN": 19 return log.WARN 20 case "DEBUG": 21 return log.DEBUG 22 default: 23 return log.INFO 24 } 25 } 26 27 func SetDefaultLogger() { 28 log.SetLogger(log.NewLogger(GetCliLogLevel(), nil)) 29 } 30 31 func CreateLogFile() (*os.File, error) { 32 logDir, err := cliutils.CreateDirInJfrogHome("logs") 33 if err != nil { 34 return nil, err 35 } 36 37 currentTime := time.Now().Format("2006-01-02.15-04-05") 38 pid := os.Getpid() 39 40 fileName := filepath.Join(logDir, "jfrog-cli."+currentTime+"."+strconv.Itoa(pid)+".log") 41 file, err := os.OpenFile(fileName, os.O_CREATE|os.O_APPEND|os.O_WRONLY, 0666) 42 if err != nil { 43 return nil, errorutils.CheckError(err) 44 } 45 46 return file, nil 47 } 48 49 // Closes the log file and resets to the default logger 50 func CloseLogFile(logFile *os.File) { 51 if logFile != nil { 52 SetDefaultLogger() 53 err := logFile.Close() 54 utils.CheckErrorWithMessage(err, "failed closing the log file") 55 } 56 }