service.go 1.8 KB

1234567891011121314151617181920212223242526272829303132333435363738394041424344454647484950515253545556575859606162636465666768697071727374757677787980818283848586878889909192
  1. package text
  2. import (
  3. "fmt"
  4. "io"
  5. )
  6. type Logger struct {
  7. name string
  8. Debug bool
  9. w io.Writer
  10. r io.Reader
  11. }
  12. func NewLogger(w io.Writer, r io.Reader, debug bool, name string) *Logger {
  13. return &Logger{
  14. w: w,
  15. name: name,
  16. Debug: debug,
  17. r: r,
  18. }
  19. }
  20. func (l *Logger) Child(name string) *Logger {
  21. return NewLogger(l.w, l.r, l.Debug, name)
  22. }
  23. func (l *Logger) Debugln(a ...any) {
  24. if !l.Debug {
  25. return
  26. }
  27. l.Println(append([]interface{}{
  28. Bold(yellow(fmt.Sprintf("[DEBUG:%s]", l.name))),
  29. }, a...)...)
  30. }
  31. func (l *Logger) OperationInfoln(a ...any) {
  32. l.Println(l.SprintOperationInfo(a...))
  33. }
  34. func (l *Logger) OperationInfo(a ...any) {
  35. l.Print(l.SprintOperationInfo(a...))
  36. }
  37. func (l *Logger) SprintOperationInfo(a ...any) string {
  38. return fmt.Sprint(append([]interface{}{Bold(Cyan(opSymbol + " ")), boldCode}, a...)...) + ResetCode
  39. }
  40. func (l *Logger) Info(a ...any) {
  41. l.Print(append([]interface{}{Bold(Green(arrow + " "))}, a...)...)
  42. }
  43. func (l *Logger) Infoln(a ...any) {
  44. l.Println(append([]interface{}{Bold(Green(arrow))}, a...)...)
  45. }
  46. func (l *Logger) Warn(a ...any) {
  47. l.Print(l.SprintWarn(a...))
  48. }
  49. func (l *Logger) Warnln(a ...any) {
  50. l.Println(l.SprintWarn(a...))
  51. }
  52. func (l *Logger) SprintWarn(a ...any) string {
  53. return fmt.Sprint(append([]interface{}{Bold(yellow(smallArrow + " "))}, a...)...)
  54. }
  55. func (l *Logger) Error(a ...any) {
  56. l.Print(l.SprintError(a...))
  57. }
  58. func (l *Logger) Errorln(a ...any) {
  59. l.Println(l.SprintError(a...))
  60. }
  61. func (l *Logger) SprintError(a ...any) string {
  62. return fmt.Sprint(append([]interface{}{Bold(Red(smallArrow + " "))}, a...)...)
  63. }
  64. func (l *Logger) Printf(format string, a ...any) {
  65. fmt.Fprintf(l.w, format, a...)
  66. }
  67. func (l *Logger) Println(a ...any) {
  68. fmt.Fprintln(l.w, a...)
  69. }
  70. func (l *Logger) Print(a ...any) {
  71. fmt.Fprint(l.w, a...)
  72. }