package photosapi

import (
	"fmt"
	"io"
	"os"
	"time"
)

var logTimeFmt = "2006/01/02 - 15:04:05"

type Logger struct {
	out    io.StringWriter
	prefix string
}

func (l *Logger) Print(prefix string, a ...interface{}) {
	t := time.Now().UTC()
	l.out.WriteString(fmt.Sprintf("[%s] %s | [%s] | %s\n", l.prefix, t.Format(logTimeFmt), prefix, fmt.Sprint(a...)))
}

func (l *Logger) Printf(prefix string, format string, a ...interface{}) {
	l.Print(prefix, fmt.Sprintf(format, a...))
}

func (l *Logger) Fatal(prefix string, a ...interface{}) {
	l.Print(prefix, a...)
	os.Exit(1)
}

func (l *Logger) Fatalf(prefix string, format string, a ...interface{}) {
	l.Printf(prefix, format, a...)
	os.Exit(1)
}