53 lines
1.6 KiB
Go
53 lines
1.6 KiB
Go
package main
|
|
|
|
import (
|
|
"archive/zip"
|
|
"io"
|
|
"log"
|
|
"os"
|
|
)
|
|
|
|
func createLogger(logDir string, verbose bool) (*log.Logger, *log.Logger, *log.Logger) {
|
|
logFile, err := os.OpenFile(logDir+"/dci_support_info.log", os.O_CREATE|os.O_WRONLY|os.O_APPEND, 0666)
|
|
if err != nil {
|
|
log.Println("Failed to open log file:", err)
|
|
logInfo := log.New(os.Stdout, "INFO: ", log.Ldate|log.Ltime|log.Lshortfile)
|
|
logWarn := log.New(os.Stdout, "WARN: ", log.Ldate|log.Ltime|log.Lshortfile)
|
|
logErr := log.New(os.Stderr, "ERROR: ", log.Ldate|log.Ltime|log.Lshortfile)
|
|
return logInfo, logWarn, logErr
|
|
} else {
|
|
if verbose {
|
|
mw := io.MultiWriter(os.Stdout, logFile)
|
|
mwErr := io.MultiWriter(os.Stderr, logFile)
|
|
log.SetOutput(mw)
|
|
logInfo := log.New(mw, "INFO: ", log.Ldate|log.Ltime|log.Lshortfile)
|
|
logWarn := log.New(mw, "WARN: ", log.Ldate|log.Ltime|log.Lshortfile)
|
|
logErr := log.New(mwErr, "ERROR: ", log.Ldate|log.Ltime|log.Lshortfile)
|
|
return logInfo, logWarn, logErr
|
|
} else {
|
|
log.SetOutput(logFile)
|
|
logInfo := log.New(logFile, "INFO: ", log.Ldate|log.Ltime|log.Lshortfile)
|
|
logWarn := log.New(logFile, "WARN: ", log.Ldate|log.Ltime|log.Lshortfile)
|
|
logErr := log.New(logFile, "ERROR: ", log.Ldate|log.Ltime|log.Lshortfile)
|
|
return logInfo, logWarn, logErr
|
|
}
|
|
}
|
|
}
|
|
|
|
func addToArchive(zipWriter *zip.Writer, filename string) error {
|
|
fileToZip, err := os.Open(filename)
|
|
if err != nil {
|
|
return err
|
|
}
|
|
defer fileToZip.Close()
|
|
|
|
w, err := zipWriter.Create(filename)
|
|
if err != nil {
|
|
return err
|
|
}
|
|
if _, err := io.Copy(w, fileToZip); err != nil {
|
|
return err
|
|
}
|
|
return nil
|
|
}
|