Browse Source

Added comments for godoc and exported Logger type

pull/1/head
Gregory Rudolph 5 years ago
parent
commit
da67c173b4
  1. 53
      loggy.go

53
loggy.go

@ -31,19 +31,28 @@ type Log struct {
// Logging options to be passed to NewLogger() // Logging options to be passed to NewLogger()
type LogOpts struct { type LogOpts struct {
// Will set to true if OutFile is set
toFile bool toFile bool
// Will set to true if KBTeam is set
toKeybase bool toKeybase bool
// Will set to true if UseStdout is true
toStdout bool toStdout bool
// Output file for logging
OutFile string OutFile string
// Keybase Team for logging
KBTeam string KBTeam string
// Keybase Channel for logging
KBChann string KBChann string
// Log level / verbosity (see LogLevel)
Level LogLevel Level LogLevel
// Program name for Keybase logging
ProgName string ProgName string
// Use stdout
UseStdout bool UseStdout bool
} }
// A basic Logger with options for logging to file, keybase or stdout // A basic Logger with options for logging to file, keybase or stdout
type logger struct { type Logger struct {
opts LogOpts opts LogOpts
k *keybase.Keybase k *keybase.Keybase
team keybase.Channel team keybase.Channel
@ -68,7 +77,7 @@ func timeStamp() string {
} }
// Write log to file // Write log to file
func (l logger) toFile(msg Log) { func (l Logger) toFile(msg Log) {
output := fmt.Sprintf("[%s] %s", output := fmt.Sprintf("[%s] %s",
timeStamp(), msg.String()) timeStamp(), msg.String())
@ -85,7 +94,7 @@ func (l logger) toFile(msg Log) {
} }
// Send log to Keybase // Send log to Keybase
func (l logger) toKeybase(msg Log) { func (l Logger) toKeybase(msg Log) {
output := fmt.Sprintf("[%s] %s", output := fmt.Sprintf("[%s] %s",
l.opts.ProgName, msg.String()) l.opts.ProgName, msg.String())
chat := l.k.NewChat(l.team) chat := l.k.NewChat(l.team)
@ -94,22 +103,22 @@ func (l logger) toKeybase(msg Log) {
} }
// Write log to Stdout // Write log to Stdout
func (l logger) toStdout(msg Log) { func (l Logger) toStdout(msg Log) {
output := fmt.Sprintf("[%s] %s", output := fmt.Sprintf("[%s] %s",
timeStamp(), msg.String()) timeStamp(), msg.String())
fmt.Println(output) fmt.Println(output)
} }
// Log Info // Log Info shortcut from string
func (l logger) LogInfo(msg string) { func (l Logger) LogInfo(msg string) {
var logMsg Log var logMsg Log
logMsg.Level = Info logMsg.Level = Info
logMsg.Msg = msg logMsg.Msg = msg
handleLog(l, logMsg) handleLog(l, logMsg)
} }
// Log Debug // Log Debug shortcut from string
func (l logger) LogDebug(msg string) { func (l Logger) LogDebug(msg string) {
var logMsg Log var logMsg Log
logMsg.Level = Debug logMsg.Level = Debug
logMsg.Msg = msg logMsg.Msg = msg
@ -117,24 +126,24 @@ func (l logger) LogDebug(msg string) {
handleLog(l, logMsg) handleLog(l, logMsg)
} }
// Log Warning // Log Warning shortcut from string
func (l logger) LogWarn(msg string) { func (l Logger) LogWarn(msg string) {
var logMsg Log var logMsg Log
logMsg.Level = Warnings logMsg.Level = Warnings
logMsg.Msg = msg logMsg.Msg = msg
handleLog(l, logMsg) handleLog(l, logMsg)
} }
// Log Error // Log Error shortcut from string
func (l logger) LogError(msg string) { func (l Logger) LogError(msg string) {
var logMsg Log var logMsg Log
logMsg.Level = Errors logMsg.Level = Errors
logMsg.Msg = msg logMsg.Msg = msg
handleLog(l, logMsg) handleLog(l, logMsg)
} }
// Log Critical // Log Critical shortcut from string
func (l logger) LogCritical(msg string) { func (l Logger) LogCritical(msg string) {
var logMsg Log var logMsg Log
logMsg.Level = Critical logMsg.Level = Critical
logMsg.Msg = msg logMsg.Msg = msg
@ -143,15 +152,15 @@ func (l logger) LogCritical(msg string) {
os.Exit(3) os.Exit(3)
} }
// Log error type // Log error type for compatibility
func (l logger) LogErrorType(e error) { func (l Logger) LogErrorType(e error) {
var logMsg Log var logMsg Log
logMsg.Level = Critical logMsg.Level = Critical
logMsg.Msg = e.Error() logMsg.Msg = e.Error()
handleLog(l, logMsg) handleLog(l, logMsg)
} }
func handleLog(l logger, logMsg Log) { func handleLog(l Logger, logMsg Log) {
if logMsg.Level > l.opts.Level && logMsg.Level != 0 { if logMsg.Level > l.opts.Level && logMsg.Level != 0 {
return return
@ -172,23 +181,25 @@ func handleLog(l logger, logMsg Log) {
} }
func (l logger) Log(level LogLevel, msg string) { // Log func, takes LogLevel and string and passes to internal handler.
func (l Logger) Log(level LogLevel, msg string) {
var logMsg Log var logMsg Log
logMsg.Level = level logMsg.Level = level
logMsg.Msg = msg logMsg.Msg = msg
handleLog(l, logMsg) handleLog(l, logMsg)
} }
func (l logger) LogMsg(msg Log) { // LogMsg takes a type Log and passes it to internal handler.
func (l Logger) LogMsg(msg Log) {
handleLog(l, msg) handleLog(l, msg)
} }
// Create a new logger instance and pass it // Create a new logger instance and pass it
func NewLogger(opts LogOpts) logger { func NewLogger(opts LogOpts) Logger {
if opts.Level == 0 { if opts.Level == 0 {
opts.Level = 2 opts.Level = 2
} }
var l logger var l Logger
if opts.KBTeam != "" { if opts.KBTeam != "" {
l.k = keybase.NewKeybase() l.k = keybase.NewKeybase()
var chann keybase.Channel var chann keybase.Channel

Loading…
Cancel
Save