github.com/ssetin/penguincast@v0.2.0/src/server/log.go (about) 1 // Package iceserver - icecast streaming server 2 package iceserver 3 4 import ( 5 "fmt" 6 "log" 7 "os" 8 ) 9 10 /* 11 Log Level 12 1 - Errors; 2 - Warning; 3 - Info; 4 - Debug 13 */ 14 15 func (i *IceServer) initLog() error { 16 var err error 17 i.logErrorFile, err = os.OpenFile(i.Props.Paths.Log+"error.log", os.O_CREATE|os.O_WRONLY|os.O_APPEND, 0666) 18 if err != nil { 19 return err 20 } 21 22 i.logAccessFile, err = os.OpenFile(i.Props.Paths.Log+"access.log", os.O_CREATE|os.O_WRONLY|os.O_APPEND, 0666) 23 if err != nil { 24 return err 25 } 26 27 if i.Props.Logging.UseStat { 28 i.statFile, err = os.OpenFile(i.Props.Paths.Log+"stat.log", os.O_CREATE|os.O_WRONLY|os.O_TRUNC, 0666) 29 if err != nil { 30 return err 31 } 32 fmt.Fprintln(i.statFile, "#Time #Listeners #CpuUsage #MemUsage") 33 } 34 35 i.logError = log.New(i.logErrorFile, "", log.Ldate|log.Ltime) 36 i.logAccess = log.New(i.logAccessFile, "", 0) 37 38 return nil 39 } 40 41 func (i *IceServer) printError(errorlevel int, format string, v ...interface{}) { 42 if errorlevel <= i.Props.Logging.Loglevel { 43 var mark string 44 if errorlevel == 1 { 45 mark = "Error: " 46 } else if errorlevel == 2 { 47 mark = "Warn: " 48 } else if errorlevel == 3 { 49 mark = "Info: " 50 } else if errorlevel == 4 { 51 mark = "Debug: " 52 } 53 i.logError.Printf(mark+format, v...) 54 } 55 } 56 57 func (i *IceServer) printAccess(format string, v ...interface{}) { 58 i.logAccess.Printf(format, v...) 59 }