PageRenderTime 54ms CodeModel.GetById 27ms RepoModel.GetById 1ms app.codeStats 0ms

/logger.go

https://github.com/cgyy/jet
Go | 51 lines | 44 code | 7 blank | 0 comment | 2 complexity | 34ba462cca4aae884d50d28e04b08dcc MD5 | raw file
  1. package jet
  2. import (
  3. "fmt"
  4. "log"
  5. "os"
  6. "strings"
  7. )
  8. type Logger struct {
  9. Logger *log.Logger
  10. QueryColor string
  11. TxnColor string
  12. ArgsColor string
  13. ResetColor string
  14. parts []string
  15. }
  16. func NewLogger(file *os.File) *Logger {
  17. if file == nil {
  18. file = os.Stdout
  19. }
  20. return &Logger{
  21. Logger: log.New(file, "SQL: ", log.LstdFlags),
  22. QueryColor: "\x1b[35m",
  23. TxnColor: "\x1b[36m",
  24. ArgsColor: "\x1b[33m",
  25. ResetColor: "\x1b[0m",
  26. parts: []string{},
  27. }
  28. }
  29. func (l *Logger) Queryf(format string, args ...interface{}) *Logger {
  30. l.parts = append(l.parts, fmt.Sprintf("%s%s%s", l.QueryColor, fmt.Sprintf(format, args...), l.ResetColor))
  31. return l
  32. }
  33. func (l *Logger) Txnf(format string, args ...interface{}) *Logger {
  34. l.parts = append(l.parts, fmt.Sprintf("%s%s%s", l.TxnColor, fmt.Sprintf(format, args...), l.ResetColor))
  35. return l
  36. }
  37. func (l *Logger) Argsf(format string, args ...interface{}) *Logger {
  38. l.parts = append(l.parts, fmt.Sprintf("%s%s%s", l.ArgsColor, fmt.Sprintf(format, args...), l.ResetColor))
  39. return l
  40. }
  41. func (l *Logger) Println() {
  42. l.Logger.Println(strings.Join(l.parts, ""))
  43. l.parts = []string{}
  44. }