Documentation ¶
Overview ¶
Package logs provide a general log interface Usage:
import "github.com/W3-Engineers-Ltd/Radiant/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") more docs http://beego.me/docs/module/logs.md
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) 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 ¶ added in v1.0.0
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 GetBeeLogger ¶ added in v1.0.0
func GetBeeLogger() *BeeLogger
GetBeeLogger returns the default BeeLogger
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) Async ¶ added in v1.0.0
Async sets the log to asynchronous and start the goroutine
func (*BeeLogger) Close ¶ added in v1.0.0
func (bl *BeeLogger) Close()
Close close logger, flush all chan data and destroy all adapters in BeeLogger.
func (*BeeLogger) EnableFuncCallDepth ¶ added in v1.0.0
EnableFuncCallDepth enable log funcCallDepth
func (*BeeLogger) GetLogFuncCallDepth ¶ added in v1.0.0
GetLogFuncCallDepth return log funcCallDepth for wrapper
func (*BeeLogger) Info ¶ added in v1.0.0
Info Log INFO level message. compatibility alias for Informational()
func (*BeeLogger) Informational ¶ added in v1.0.0
Informational Log INFORMATIONAL level message.
func (*BeeLogger) Reset ¶ added in v1.0.0
func (bl *BeeLogger) Reset()
Reset close all outputs, and set bl.outputs to nil
func (*BeeLogger) SetLevel ¶ added in v1.0.0
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 ¶ added in v1.0.0
SetLogFuncCallDepth set log funcCallDepth
func (*BeeLogger) SetLogger ¶ added in v1.0.0
SetLogger provides a given logger adapter into BeeLogger with config string. config must in in JSON format like {"interval":360}}
func (*BeeLogger) Trace ¶ added in v1.0.0
Trace Log TRACE level message. compatibility alias for Debug()
func (*BeeLogger) Warn ¶ added in v1.0.0
Warn Log WARN level message. compatibility alias for Warning()
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.