package logger

import (
	"bytes"
	"fmt"
	"time"

	"github.com/sirupsen/logrus"
)

type MyFormatter struct {
	for_server bool
	for_gorm   bool
}

func (m *MyFormatter) Format(entry *logrus.Entry) ([]byte, error) {
	var b *bytes.Buffer
	if entry.Buffer != nil {
		b = entry.Buffer
	} else {
		b = &bytes.Buffer{}
	}
	timestamp := entry.Time.Format(time.DateTime)
	var line string
	if m.for_gorm {
		line = fmt.Sprintf("[GORM  ] [%s] [%s] %s\r\n", timestamp, entry.Level, entry.Message)
	} else {
		line = fmt.Sprintf("[SERVER] [%s] [%s] %s\r\n", timestamp, entry.Level, entry.Message)
	}
	b.WriteString(line)
	return b.Bytes(), nil
}
