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  }