go语言写的人脸本地化程序
Nevar pievienot vairāk kā 25 tēmas Tēmai ir jāsākas ar burtu vai ciparu, tā var saturēt domu zīmes ('-') un var būt līdz 35 simboliem gara.
 
 
 
 
 

102 rindas
2.2 KiB

  1. package common
  2. import (
  3. "io"
  4. "log"
  5. "os"
  6. "time"
  7. )
  8. // flags and prefix
  9. const (
  10. flag = log.Ldate | log.Ltime | log.Lshortfile
  11. preDebug = "[DEBUG] "
  12. preInfo = "[INFO] "
  13. preWarning = "[WARNING] "
  14. preError = "[ERROR] "
  15. )
  16. // diff logger and output log file
  17. var (
  18. logFile io.Writer
  19. debugLogger *log.Logger
  20. infoLogger *log.Logger
  21. warningLogger *log.Logger
  22. errorLogger *log.Logger
  23. defaultLogFile = "./logs/web.log"
  24. )
  25. func createFile() {
  26. var err error
  27. logFile, err = os.OpenFile(defaultLogFile, os.O_CREATE|os.O_APPEND|os.O_WRONLY, 0644)
  28. if err != nil {
  29. logFile, err = os.OpenFile(defaultLogFile, os.O_CREATE|os.O_APPEND|os.O_WRONLY, 0644)
  30. if err != nil {
  31. log.Fatalf("create log file err %+v", err)
  32. }
  33. }
  34. debugLogger = log.New(io.MultiWriter(os.Stdout, logFile), preDebug, flag)
  35. infoLogger = log.New(logFile, preInfo, flag)
  36. warningLogger = log.New(logFile, preWarning, flag)
  37. errorLogger = log.New(logFile, preError, flag)
  38. }
  39. // init for logger
  40. func init() {
  41. createFile()
  42. }
  43. // Debug logger
  44. func Debug(format string, v ...interface{}) {
  45. debugLogger.Printf(format, v...)
  46. }
  47. func Info(format string, v ...interface{}) {
  48. infoLogger.Printf(format, v...)
  49. }
  50. func Warning(format string, v ...interface{}) {
  51. warningLogger.Printf(format, v...)
  52. }
  53. func Error(format string, v ...interface{}) {
  54. errorLogger.Printf(format, v...)
  55. }
  56. // set output file
  57. func setOutputPath(path string) {
  58. var err error
  59. logFile, err = os.OpenFile(path, os.O_CREATE|os.O_APPEND|os.O_WRONLY, 0644)
  60. if err != nil {
  61. log.Fatalf("create log file err %+v", err)
  62. }
  63. debugLogger = log.New(logFile, preDebug, flag)
  64. infoLogger = log.New(logFile, preInfo, flag)
  65. warningLogger = log.New(logFile, preWarning, flag)
  66. errorLogger = log.New(logFile, preError, flag)
  67. }
  68. func SetFlags(flag int) {
  69. debugLogger.SetFlags(flag)
  70. infoLogger.SetFlags(flag)
  71. warningLogger.SetFlags(flag)
  72. errorLogger.SetFlags(flag)
  73. }
  74. func RenameLogFile() {
  75. if _, err := os.Stat(defaultLogFile); os.IsNotExist(err) {
  76. Info("文件不存在")
  77. return
  78. }
  79. // 重命名文件
  80. err := os.Rename(defaultLogFile, "./logs/"+time.Now().Format("2006-01-02")+"-info.log")
  81. if err != nil {
  82. Info("重命名失败:", err)
  83. } else {
  84. Info("重命名成功")
  85. createFile()
  86. }
  87. }