예제 #1
0
파일: logger.go 프로젝트: kevgathuku/mailer
// all logging functions call this `log` function
func (console *Logger) log(d logDetails, colorAttr color.Attribute, isBold bool, format string, args ...interface{}) {
	// Only print out, logs that are the selected level or higher
	if console.level >= d.level {
		newlog := color.Set(colorAttr)
		defer color.Unset()

		// if the request is to log bold text
		if isBold {
			newlog.Add(color.Bold)
		}

		// Check to see if we are to add background color
		// Alert and Fatal have background colors
		switch d.level {
		case 1: // for Fatal
			color.Set(color.BgRed)
			break
		case 2: // for Alerts
			color.Set(color.BgMagenta)
			break
		}

		// I want it log both into the file and on the console
		console.LogFile.Printf(format, args...)
		log.Printf(format, args...)
	}
}
예제 #2
0
파일: logger.go 프로젝트: kevgathuku/mailer
// Critical can be used to log system wide Critical information that needs to be fixed immediately (Red background and white text)
func (console *Logger) Critical(format string, args ...interface{}) {
	color.Set(color.BgRed, color.FgWhite, color.Bold)
	defer color.Unset()
	console.log(logLevel["Fatal"], color.FgRed, true, format, args...)
}
예제 #3
0
파일: logger.go 프로젝트: kevgathuku/mailer
// Alert can be used to log Alerts, maybe on certain events (Magenta background, white text).
func (console *Logger) Alert(format string, args ...interface{}) {
	color.Set(color.BgMagenta, color.FgBlack, color.Bold)
	defer color.Unset()
	console.log(logLevel["Alert"], color.FgBlack, true, format, args...)
}