log.go 1.6 KB

1234567891011121314151617181920212223242526272829303132333435363738394041424344454647484950515253545556575859606162636465666768
  1. package log
  2. /*
  3. log module is used to write log info to log file
  4. open a log file when log was created, and close it when log was destroyed
  5. */
  6. import (
  7. "fmt"
  8. go_log "log"
  9. "os"
  10. )
  11. var show_log bool = true
  12. var logger = go_log.New(os.Stdout, "", go_log.Ldate|go_log.Ltime|go_log.Lshortfile)
  13. const (
  14. LOG_LEVEL_DEBUG_COLOR = "\033[34m"
  15. LOG_LEVEL_INFO_COLOR = "\033[32m"
  16. LOG_LEVEL_WARN_COLOR = "\033[33m"
  17. LOG_LEVEL_ERROR_COLOR = "\033[31m"
  18. LOG_LEVEL_COLOR_END = "\033[0m"
  19. )
  20. func writeLog(level string, format string, stdout bool, v ...interface{}) {
  21. //write log
  22. format = fmt.Sprintf("["+level+"]"+format, v...)
  23. if show_log && stdout {
  24. if level == "DEBUG" {
  25. logger.Output(3, LOG_LEVEL_DEBUG_COLOR+format+LOG_LEVEL_COLOR_END)
  26. } else if level == "INFO" {
  27. logger.Output(3, LOG_LEVEL_INFO_COLOR+format+LOG_LEVEL_COLOR_END)
  28. } else if level == "WARN" {
  29. logger.Output(3, LOG_LEVEL_WARN_COLOR+format+LOG_LEVEL_COLOR_END)
  30. } else if level == "ERROR" {
  31. logger.Output(3, LOG_LEVEL_ERROR_COLOR+format+LOG_LEVEL_COLOR_END)
  32. } else if level == "PANIC" {
  33. logger.Output(3, LOG_LEVEL_ERROR_COLOR+format+LOG_LEVEL_COLOR_END)
  34. panic(fmt.Sprintf(format, v...))
  35. }
  36. }
  37. }
  38. func SetShowLog(show bool) {
  39. show_log = show
  40. }
  41. func Debug(format string, v ...interface{}) {
  42. writeLog("DEBUG", format, true, v...)
  43. }
  44. func Info(format string, v ...interface{}) {
  45. writeLog("INFO", format, true, v...)
  46. }
  47. func Warn(format string, v ...interface{}) {
  48. writeLog("WARN", format, true, v...)
  49. }
  50. func Error(format string, v ...interface{}) {
  51. writeLog("ERROR", format, true, v...)
  52. }
  53. func Panic(format string, v ...interface{}) {
  54. writeLog("PANIC", format, true, v...)
  55. }