logger.go 1.3 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566
  1. package utils
  2. import (
  3. "fmt"
  4. "log"
  5. "os"
  6. )
  7. // Logger 日志结构体
  8. type Logger struct {
  9. infoLogger *log.Logger
  10. errorLogger *log.Logger
  11. }
  12. var logger *Logger
  13. // InitLogger 初始化日志组件
  14. func InitLogger() {
  15. // 创建日志文件
  16. file, err := os.OpenFile("app.log", os.O_CREATE|os.O_WRONLY|os.O_APPEND, 0666)
  17. if err != nil {
  18. log.Fatalln("无法创建日志文件:", err)
  19. }
  20. // 初始化日志记录器
  21. logger = &Logger{
  22. infoLogger: log.New(file, "INFO: ", log.Ldate|log.Ltime|log.Lshortfile),
  23. errorLogger: log.New(file, "ERROR: ", log.Ldate|log.Ltime|log.Lshortfile),
  24. }
  25. }
  26. // Info 记录信息日志
  27. func Info(v ...interface{}) {
  28. if logger != nil {
  29. logger.infoLogger.Println(v...)
  30. } else {
  31. log.Println("[INFO]", fmt.Sprint(v...))
  32. }
  33. }
  34. // Error 记录错误日志
  35. func Error(v ...interface{}) {
  36. if logger != nil {
  37. logger.errorLogger.Println(v...)
  38. } else {
  39. log.Println("[ERROR]", fmt.Sprint(v...))
  40. }
  41. }
  42. // Infof 记录格式化信息日志
  43. func Infof(format string, v ...interface{}) {
  44. if logger != nil {
  45. logger.infoLogger.Printf(format, v...)
  46. } else {
  47. log.Printf("[INFO] "+format, v...)
  48. }
  49. }
  50. // Errorf 记录格式化错误日志
  51. func Errorf(format string, v ...interface{}) {
  52. if logger != nil {
  53. logger.errorLogger.Printf(format, v...)
  54. } else {
  55. log.Printf("[ERROR] "+format, v...)
  56. }
  57. }