// Code generated by depstubber. DO NOT EDIT.
// This is a simple stub for github.com/revel/revel/logger, strictly for use in testing.

// See the LICENSE file for information about the licensing of the original library.
// Source: github.com/revel/revel/logger (exports: MultiLogger,LogOptions,CompositeMultiHandler; functions: LogFunctionMap)

// Package logger is a stub of github.com/revel/revel/logger, generated by depstubber.
package logger

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

type CallStack interface {
	Format(_ fmt.State, _ int32)
}

type CompositeMultiHandler struct {
	DebugHandler    LogHandler
	InfoHandler     LogHandler
	WarnHandler     LogHandler
	ErrorHandler    LogHandler
	CriticalHandler LogHandler
}

func (_ *CompositeMultiHandler) Disable(_ ...LogLevel) {}

func (_ *CompositeMultiHandler) Log(_ *Record) error {
	return nil
}

func (_ *CompositeMultiHandler) SetHandler(_ LogHandler, _ bool, _ LogLevel) {}

func (_ *CompositeMultiHandler) SetHandlers(_ LogHandler, _ *LogOptions) {}

func (_ *CompositeMultiHandler) SetJson(_ io.Writer, _ *LogOptions) {}

func (_ *CompositeMultiHandler) SetJsonFile(_ string, _ *LogOptions) {}

func (_ *CompositeMultiHandler) SetTerminal(_ io.Writer, _ *LogOptions) {}

func (_ *CompositeMultiHandler) SetTerminalFile(_ string, _ *LogOptions) {}

type ContextMap map[string]interface{}

func (_ ContextMap) Add(_ string, _ interface{}) {}

func (_ ContextMap) StringMap() map[string]string {
	return nil
}

var LogFunctionMap map[string]func(*CompositeMultiHandler, *LogOptions) = nil

type LogHandler interface {
	Log(_ *Record) error
}

type LogLevel int

type LogOptions struct {
	Ctx                    interface{}
	ReplaceExistingHandler bool
	HandlerWrap            ParentLogHandler
	Levels                 []LogLevel
	ExtendedOptions        map[string]interface{}
}

func (_ *LogOptions) GetBoolDefault(_ string, _ bool) bool {
	return false
}

func (_ *LogOptions) GetIntDefault(_ string, _ int) int {
	return 0
}

func (_ *LogOptions) GetStringDefault(_ string, _ string) string {
	return ""
}

func (_ *LogOptions) SetExtendedOptions(_ ...interface{}) {}

type MultiLogger interface {
	Crit(_ string, _ ...interface{})
	Critf(_ string, _ ...interface{})
	Debug(_ string, _ ...interface{})
	Debugf(_ string, _ ...interface{})
	Error(_ string, _ ...interface{})
	Errorf(_ string, _ ...interface{})
	Fatal(_ string, _ ...interface{})
	Fatalf(_ string, _ ...interface{})
	Info(_ string, _ ...interface{})
	Infof(_ string, _ ...interface{})
	New(_ ...interface{}) MultiLogger
	Panic(_ string, _ ...interface{})
	Panicf(_ string, _ ...interface{})
	SetHandler(_ LogHandler)
	SetStackDepth(_ int) MultiLogger
	Warn(_ string, _ ...interface{})
	Warnf(_ string, _ ...interface{})
}

type ParentLogHandler interface {
	SetChild(_ LogHandler) LogHandler
}

type Record struct {
	Message string
	Time    time.Time
	Level   LogLevel
	Call    CallStack
	Context ContextMap
}
