Documentation ¶
Overview ¶
Package logs provide a general log interface Usage:
import "github.com/tianmaotalk/beego/v2/core/logs"
log := NewLogger(10000) log.SetLogger("console", "") > the first params stand for how many channel
Use it like this:
log.Trace("trace") log.Info("info") log.Warn("warning") log.Debug("debug") log.Critical("critical")
Index ¶
- Constants
- func AccessLog(r *AccessLogRecord, format string)
- func Alert(f interface{}, v ...interface{})
- func ColorByMethod(method string) string
- func ColorByStatus(code int) string
- func Critical(f interface{}, v ...interface{})
- func Debug(f interface{}, v ...interface{})
- func Emergency(f interface{}, v ...interface{})
- func EnableFullFilePath(b bool)
- func EnableFuncCallDepth(b bool)
- func Error(f interface{}, v ...interface{})
- func GetLogger(prefixes ...string) *log.Logger
- func Info(f interface{}, v ...interface{})
- func Informational(f interface{}, v ...interface{})
- func Notice(f interface{}, v ...interface{})
- func Register(name string, log newLoggerFunc)
- func RegisterFormatter(name string, fmtr LogFormatter)
- func Reset()
- func ResetColor() string
- func SetGlobalFormatter(fmtter string) error
- func SetLevel(l int)
- func SetLogFuncCall(b bool)
- func SetLogFuncCallDepth(d int)
- func SetLogger(adapter string, config ...string) error
- func SetPrefix(s string)
- func Trace(f interface{}, v ...interface{})
- func Warn(f interface{}, v ...interface{})
- func Warning(f interface{}, v ...interface{})
- type AccessLogRecord
- type BeeLogger
- func (bl *BeeLogger) Alert(format string, v ...interface{})
- func (bl *BeeLogger) Async(msgLen ...int64) *BeeLogger
- func (bl *BeeLogger) AsyncNonBlockWrite() *BeeLogger
- func (bl *BeeLogger) Close()
- func (bl *BeeLogger) Critical(format string, v ...interface{})
- func (bl *BeeLogger) Debug(format string, v ...interface{})
- func (bl *BeeLogger) DelLogger(adapterName string) error
- func (bl *BeeLogger) Emergency(format string, v ...interface{})
- func (bl *BeeLogger) EnableFuncCallDepth(b bool)
- func (bl *BeeLogger) Error(format string, v ...interface{})
- func (bl *BeeLogger) Flush()
- func (bl *BeeLogger) GetLevel() int
- func (bl *BeeLogger) GetLogFuncCallDepth() int
- func (bl *BeeLogger) Info(format string, v ...interface{})
- func (bl *BeeLogger) Informational(format string, v ...interface{})
- func (bl *BeeLogger) Notice(format string, v ...interface{})
- func (bl *BeeLogger) Reset()
- func (bl *BeeLogger) SetLevel(l int)
- func (bl *BeeLogger) SetLogFuncCallDepth(d int)
- func (bl *BeeLogger) SetLogger(adapterName string, configs ...string) error
- func (bl *BeeLogger) SetPrefix(s string)
- func (bl *BeeLogger) Trace(format string, v ...interface{})
- func (bl *BeeLogger) Warn(format string, v ...interface{})
- func (bl *BeeLogger) Warning(format string, v ...interface{})
- func (bl *BeeLogger) Write(p []byte) (n int, err error)
- type JLWriter
- type LogFormatter
- type LogMsg
- type Logger
- type PatternLogFormatter
- type SLACKWriter
- type SMTPWriter
Constants ¶
const ( LevelEmergency = iota LevelAlert LevelCritical LevelError LevelWarning LevelNotice LevelInformational LevelDebug )
RFC5424 log message levels.
const ( AdapterConsole = "console" AdapterFile = "file" AdapterMultiFile = "multifile" AdapterMail = "smtp" AdapterConn = "conn" AdapterEs = "es" AdapterJianLiao = "jianliao" AdapterSlack = "slack" AdapterAliLS = "alils" )
Name for adapter with beego official support
const ( LevelInfo = LevelInformational LevelTrace = LevelDebug LevelWarn = LevelWarning )
Legacy log level constants to ensure backwards compatibility.
Variables ¶
This section is empty.
Functions ¶
func AccessLog ¶
func AccessLog(r *AccessLogRecord, format string)
AccessLog - Format and print access log.
func ColorByMethod ¶
ColorByMethod return color by http code
func ColorByStatus ¶
ColorByStatus return color by http code 2xx return Green 3xx return White 4xx return Yellow 5xx return Red
func Critical ¶
func Critical(f interface{}, v ...interface{})
Critical logs a message at critical level.
func Emergency ¶
func Emergency(f interface{}, v ...interface{})
Emergency logs a message at emergency level.
func EnableFullFilePath ¶
func EnableFullFilePath(b bool)
EnableFullFilePath enables full file path logging. Disabled by default e.g "/home/Documents/GitHub/beego/mainapp/" instead of "mainapp"
func EnableFuncCallDepth ¶
func EnableFuncCallDepth(b bool)
EnableFuncCallDepth enable log funcCallDepth
func Informational ¶
func Informational(f interface{}, v ...interface{})
Informational logs a message at info level.
func Register ¶
func Register(name string, log newLoggerFunc)
Register makes a log provide available by the provided name. If Register is called twice with the same name or if driver is nil, it panics.
func RegisterFormatter ¶
func RegisterFormatter(name string, fmtr LogFormatter)
RegisterFormatter register an formatter. Usually you should use this to extend your custom formatter for example: RegisterFormatter("my-fmt", &MyFormatter{}) logs.SetFormatter(Console, `{"formatter": "my-fmt"}`)
func SetGlobalFormatter ¶
SetGlobalFormatter sets the global formatter for all log adapters don't forget to register the formatter by invoking RegisterFormatter
func SetLogFuncCallDepth ¶
func SetLogFuncCallDepth(d int)
SetLogFuncCallDepth set log funcCallDepth
Types ¶
type AccessLogRecord ¶
type AccessLogRecord struct { RemoteAddr string `json:"remote_addr"` RequestTime time.Time `json:"request_time"` RequestMethod string `json:"request_method"` Request string `json:"request"` ServerProtocol string `json:"server_protocol"` Host string `json:"host"` Status int `json:"status"` BodyBytesSent int64 `json:"body_bytes_sent"` ElapsedTime time.Duration `json:"elapsed_time"` HTTPReferrer string `json:"http_referrer"` HTTPUserAgent string `json:"http_user_agent"` RemoteUser string `json:"remote_user"` }
AccessLogRecord is astruct for holding access log data.
type BeeLogger ¶
type BeeLogger struct {
// contains filtered or unexported fields
}
BeeLogger is default logger in beego application. Can contain several providers and log message into all providers.
func NewLogger ¶
NewLogger returns a new BeeLogger. channelLen: the number of messages in chan(used where asynchronous is true). if the buffering chan is full, logger adapters write to file or other way.
func (*BeeLogger) AsyncNonBlockWrite ¶
AsyncNonBlockWrite Non-blocking write in asynchronous mode Only works if asynchronous write logging is set
func (*BeeLogger) Close ¶
func (bl *BeeLogger) Close()
Close close logger, flush all chan data and destroy all adapters in BeeLogger.
func (*BeeLogger) EnableFuncCallDepth ¶
EnableFuncCallDepth enable log funcCallDepth
func (*BeeLogger) GetLogFuncCallDepth ¶
GetLogFuncCallDepth return log funcCallDepth for wrapper
func (*BeeLogger) Informational ¶
Informational Log INFORMATIONAL level message.
func (*BeeLogger) Reset ¶
func (bl *BeeLogger) Reset()
Reset close all outputs, and set bl.outputs to nil
func (*BeeLogger) SetLevel ¶
SetLevel sets log message level. If message level (such as LevelDebug) is higher than logger level (such as LevelWarning), log providers will not be sent the message.
func (*BeeLogger) SetLogFuncCallDepth ¶
SetLogFuncCallDepth set log funcCallDepth
func (*BeeLogger) SetLogger ¶
SetLogger provides a given logger adapter into BeeLogger with config string. config must in in JSON format like {"interval":360}}
type JLWriter ¶
type JLWriter struct { AuthorName string `json:"authorname"` Title string `json:"title"` WebhookURL string `json:"webhookurl"` RedirectURL string `json:"redirecturl,omitempty"` ImageURL string `json:"imageurl,omitempty"` Level int `json:"level"` Formatter string `json:"formatter"` // contains filtered or unexported fields }
JLWriter implements beego LoggerInterface and is used to send jiaoliao webhook
func (*JLWriter) SetFormatter ¶
func (s *JLWriter) SetFormatter(f LogFormatter)
type LogFormatter ¶
func GetFormatter ¶
func GetFormatter(name string) (LogFormatter, bool)
type LogMsg ¶
type LogMsg struct { Level int Msg string When time.Time FilePath string LineNumber int Args []interface{} Prefix string // contains filtered or unexported fields }
func (*LogMsg) OldStyleFormat ¶
OldStyleFormat you should never invoke this
type Logger ¶
type Logger interface { Init(config string) error WriteMsg(lm *LogMsg) error Destroy() Flush() SetFormatter(f LogFormatter) }
Logger defines the behavior of a log provider.
func NewConsole ¶
func NewConsole() Logger
NewConsole creates ConsoleWriter returning as LoggerInterface.
type PatternLogFormatter ¶
PatternLogFormatter provides a quick format method for example: tes := &PatternLogFormatter{Pattern: "%F:%n|%w %t>> %m", WhenFormat: "2006-01-02"} RegisterFormatter("tes", tes) SetGlobalFormatter("tes")
func (*PatternLogFormatter) Format ¶
func (p *PatternLogFormatter) Format(lm *LogMsg) string
func (*PatternLogFormatter) ToString ¶
func (p *PatternLogFormatter) ToString(lm *LogMsg) string
ToString 'w' when, 'm' msg,'f' filename,'F' full path,'n' line number 'l' level number, 't' prefix of level type, 'T' full name of level type
type SLACKWriter ¶
type SLACKWriter struct { WebhookURL string `json:"webhookurl"` Level int `json:"level"` Formatter string `json:"formatter"` // contains filtered or unexported fields }
SLACKWriter implements beego LoggerInterface and is used to send jiaoliao webhook
func (*SLACKWriter) Format ¶
func (s *SLACKWriter) Format(lm *LogMsg) string
func (*SLACKWriter) Init ¶
func (s *SLACKWriter) Init(config string) error
Init SLACKWriter with json config string
func (*SLACKWriter) SetFormatter ¶
func (s *SLACKWriter) SetFormatter(f LogFormatter)
func (*SLACKWriter) WriteMsg ¶
func (s *SLACKWriter) WriteMsg(lm *LogMsg) error
WriteMsg write message in smtp writer. Sends an email with subject and only this message.
type SMTPWriter ¶
type SMTPWriter struct { Username string `json:"username"` Password string `json:"password"` Host string `json:"host"` Subject string `json:"subject"` FromAddress string `json:"fromAddress"` RecipientAddresses []string `json:"sendTos"` Level int `json:"level"` Formatter string `json:"formatter"` // contains filtered or unexported fields }
SMTPWriter implements LoggerInterface and is used to send emails via given SMTP-server.
func (*SMTPWriter) Format ¶
func (s *SMTPWriter) Format(lm *LogMsg) string
func (*SMTPWriter) Init ¶
func (s *SMTPWriter) Init(config string) error
Init smtp writer with json config. config like:
{ "username":"example@gmail.com", "password:"password", "host":"smtp.gmail.com:465", "subject":"email title", "fromAddress":"from@example.com", "sendTos":["email1","email2"], "level":LevelError }
func (*SMTPWriter) SetFormatter ¶
func (s *SMTPWriter) SetFormatter(f LogFormatter)
func (*SMTPWriter) WriteMsg ¶
func (s *SMTPWriter) WriteMsg(lm *LogMsg) error
WriteMsg writes message in smtp writer. Sends an email with subject and only this message.