()
| 27 | var setupLogWorking bool |
| 28 | |
| 29 | func SetupLogger() { |
| 30 | if *LogDir != "" { |
| 31 | ok := setupLogLock.TryLock() |
| 32 | if !ok { |
| 33 | log.Println("setup log is already working") |
| 34 | return |
| 35 | } |
| 36 | defer func() { |
| 37 | setupLogLock.Unlock() |
| 38 | setupLogWorking = false |
| 39 | }() |
| 40 | logPath := filepath.Join(*LogDir, fmt.Sprintf("oneapi-%s.log", time.Now().Format("20060102150405"))) |
| 41 | fd, err := os.OpenFile(logPath, os.O_APPEND|os.O_CREATE|os.O_WRONLY, 0644) |
| 42 | if err != nil { |
| 43 | log.Fatal("failed to open log file") |
| 44 | } |
| 45 | gin.DefaultWriter = io.MultiWriter(os.Stdout, fd) |
| 46 | gin.DefaultErrorWriter = io.MultiWriter(os.Stderr, fd) |
| 47 | } |
| 48 | } |
| 49 | |
| 50 | func SysLog(s string) { |
| 51 | t := time.Now() |
no outgoing calls
no test coverage detected