func NewWarningLog(format string, args ...interface{}) Log {
	return newLog(LogLevelWarn, newTextMessage(format, args...))
}
NewWarningLog creates a new warning log
package terminal
import (
	"encoding/json"
	"fmt"
	"time"
	"github.com/iancoleman/orderedmap"
)
type LogLevel string
const (
	LogLevelInfo  LogLevel = "info"
	LogLevelError LogLevel = "error"
	LogLevelWarn  LogLevel = "warn"
	LogLevelDebug LogLevel = "debug"
)
type LogData interface {
	Message() (string, error)
	Payload() ([]string, map[string]interface{}, error)
}
type Log struct {
	Level LogLevel
	Time  time.Time
	Data  LogData
}
func NewDebugLog(format string, args ...interface{}) Log {
	return newLog(LogLevelDebug, newTextMessage(format, args...))
}
func NewTextLog(format string, args ...interface{}) Log {
	return newLog(LogLevelInfo, newTextMessage(format, args...))
}
func NewJSONLog(message string, data interface{}) Log {
	return newLog(LogLevelInfo, jsonDocument{message, data})
}
func NewTableLog(message string, headers []string, data ...map[string]interface{}) Log {
	return newLog(LogLevelInfo, newTable(message, headers, data))
}
func NewListLog(message string, data ...interface{}) Log {
	return newLog(LogLevelInfo, newList(message, data, false))
}
func NewErrorLog(err error) Log {
	return newLog(LogLevelError, errorMessage{err})
}