Skip to content
This repository has been archived by the owner on Jul 16, 2024. It is now read-only.

Commit

Permalink
Add support for log verbosity (#74)
Browse files Browse the repository at this point in the history
Use stdout for info and debug
Use stderr for warn, error, fatal and panic
  • Loading branch information
puneetguptanitj committed Oct 19, 2018
1 parent e73158f commit df84f9a
Show file tree
Hide file tree
Showing 68 changed files with 10,795 additions and 12 deletions.
22 changes: 19 additions & 3 deletions Gopkg.lock

Some generated files are not rendered by default. Learn more about how customized files appear on GitHub.

3 changes: 2 additions & 1 deletion binary/etcd.go
Original file line number Diff line number Diff line change
Expand Up @@ -19,13 +19,14 @@ package binary
import (
"fmt"
"io/ioutil"
"log"
"os"
"os/exec"
"path/filepath"
"strings"
"time"

log "github.com/platform9/etcdadm/pkg/logrus"

"github.com/platform9/etcdadm/constants"
"github.com/platform9/etcdadm/util"
)
Expand Down
3 changes: 2 additions & 1 deletion certs/certs.go
Original file line number Diff line number Diff line change
Expand Up @@ -25,7 +25,8 @@ import (
"crypto/rsa"
"crypto/x509"
"fmt"
"log"

log "github.com/platform9/etcdadm/pkg/logrus"

"github.com/platform9/etcdadm/apis"
"github.com/platform9/etcdadm/certs/pkiutil"
Expand Down
2 changes: 1 addition & 1 deletion cmd/download.go
Original file line number Diff line number Diff line change
Expand Up @@ -17,7 +17,7 @@
package cmd

import (
"log"
log "github.com/platform9/etcdadm/pkg/logrus"

"github.com/platform9/etcdadm/apis"
"github.com/platform9/etcdadm/binary"
Expand Down
3 changes: 2 additions & 1 deletion cmd/info.go
Original file line number Diff line number Diff line change
Expand Up @@ -20,7 +20,8 @@ import (
"context"
"encoding/json"
"fmt"
"log"

log "github.com/platform9/etcdadm/pkg/logrus"

"github.com/platform9/etcdadm/apis"
"github.com/platform9/etcdadm/constants"
Expand Down
3 changes: 2 additions & 1 deletion cmd/init.go
Original file line number Diff line number Diff line change
Expand Up @@ -18,9 +18,10 @@ package cmd

import (
"context"
"log"
"os"

log "github.com/platform9/etcdadm/pkg/logrus"

"github.com/coreos/etcd/etcdserver/api/v3rpc/rpctypes"
"github.com/platform9/etcdadm/etcd"

Expand Down
3 changes: 2 additions & 1 deletion cmd/join.go
Original file line number Diff line number Diff line change
Expand Up @@ -18,10 +18,11 @@ package cmd

import (
"context"
"log"
"net/url"
"os"

log "github.com/platform9/etcdadm/pkg/logrus"

"github.com/coreos/etcd/etcdserver/etcdserverpb"

"github.com/coreos/etcd/etcdserver/api/v3rpc/rpctypes"
Expand Down
3 changes: 2 additions & 1 deletion cmd/reset.go
Original file line number Diff line number Diff line change
Expand Up @@ -18,9 +18,10 @@ package cmd

import (
"context"
"log"
"os"

log "github.com/platform9/etcdadm/pkg/logrus"

"github.com/coreos/etcd/etcdserver/etcdserverpb"
"github.com/platform9/etcdadm/apis"
"github.com/platform9/etcdadm/binary"
Expand Down
14 changes: 14 additions & 0 deletions cmd/root.go
Original file line number Diff line number Diff line change
Expand Up @@ -21,15 +21,25 @@ import (
"os"

"github.com/platform9/etcdadm/apis"
log "github.com/platform9/etcdadm/pkg/logrus"
"github.com/sirupsen/logrus"
"github.com/spf13/cobra"
)

var etcdAdmConfig apis.EtcdAdmConfig
var LogLevel string

var (
rootCmd = &cobra.Command{
Use: "etcdadm",
Long: `Tool to bootstrap etcdadm on the host`,
PersistentPreRun: func(cmd *cobra.Command, args []string) {
logLevel, err := logrus.ParseLevel(LogLevel)
if err != nil {
log.Fatalf("Could not parse log level %v", logLevel)
}
log.SetLogLevel(logLevel)
},
}
)

Expand All @@ -39,3 +49,7 @@ func Execute() {
os.Exit(1)
}
}

func init() {
rootCmd.PersistentFlags().StringVarP(&LogLevel, "log-level", "l", "info", "set log level for output, permitted values debug, info, warn, error, fatal and panic")
}
3 changes: 2 additions & 1 deletion cmd/version.go
Original file line number Diff line number Diff line change
Expand Up @@ -19,7 +19,8 @@ package cmd
import (
"encoding/json"
"fmt"
"log"

log "github.com/platform9/etcdadm/pkg/logrus"

"github.com/ghodss/yaml"
"github.com/spf13/cobra"
Expand Down
168 changes: 168 additions & 0 deletions pkg/logrus/logrus.go
Original file line number Diff line number Diff line change
@@ -0,0 +1,168 @@
package logrus

import (
"os"

log "github.com/sirupsen/logrus"
)

var (
// used for debug, info, warn
stdOut = log.New()
// used for error, fatal, panic
stdError = log.New()
)

// SetLogLevel sets level for both loggers
func SetLogLevel(level log.Level) {
stdOut.Out = os.Stdout
stdError.Out = os.Stderr
// used only for levels >= log.InfoLevel
stdOut.SetLevel(level)
// used only for levels <= log.ErrorLevel
stdError.SetLevel(level)
}

// WithError creates an entry from the standard logger and adds an error to it, using the value defined in ErrorKey as key.
func WithError(err error) *log.Entry {
return stdError.WithField(log.ErrorKey, err)
}

// WithField creates an entry from the standard logger and adds a field to
// it. If you want multiple fields, use `WithFields`.
//
// Note that it doesn't log until you call Debug, Print, Info, Warn, Fatal
// or Panic on the Entry it returns.
func WithField(key string, value interface{}) *log.Entry {
return stdOut.WithField(key, value)
}

// WithFields creates an entry from the standard logger and adds multiple
// fields to it. This is simply a helper for `WithField`, invoking it
// once for each field.
//
// Note that it doesn't log until you call Debug, Print, Info, Warn, Fatal
// or Panic on the Entry it returns.
func WithFields(fields log.Fields) *log.Entry {
return stdOut.WithFields(fields)
}

// Debug logs a message at level Debug on the standard logger.
func Debug(args ...interface{}) {
stdOut.Debug(args...)
}

// Print logs a message at level Info on the standard logger.
func Print(args ...interface{}) {
stdOut.Print(args...)
}

// Info logs a message at level Info on the standard logger.
func Info(args ...interface{}) {
stdOut.Info(args...)
}

// Warn logs a message at level Warn on the standard logger.
func Warn(args ...interface{}) {
stdError.Warn(args...)
}

// Warning logs a message at level Warn on the standard logger.
func Warning(args ...interface{}) {
stdError.Warning(args...)
}

// Error logs a message at level Error on the standard logger.
func Error(args ...interface{}) {
stdError.Error(args...)
}

// Panic logs a message at level Panic on the standard logger.
func Panic(args ...interface{}) {
stdError.Panic(args...)
}

// Fatal logs a message at level Fatal on the standard logger.
func Fatal(args ...interface{}) {
stdError.Fatal(args...)
}

// Debugf logs a message at level Debug on the standard logger.
func Debugf(format string, args ...interface{}) {
stdOut.Debugf(format, args...)
}

// Printf logs a message at level Info on the standard logger.
func Printf(format string, args ...interface{}) {
stdOut.Printf(format, args...)
}

// Infof logs a message at level Info on the standard logger.
func Infof(format string, args ...interface{}) {
stdOut.Infof(format, args...)
}

// Warnf logs a message at level Warn on the standard logger.
func Warnf(format string, args ...interface{}) {
stdError.Warnf(format, args...)
}

// Warningf logs a message at level Warn on the standard logger.
func Warningf(format string, args ...interface{}) {
stdError.Warningf(format, args...)
}

// Errorf logs a message at level Error on the standard logger.
func Errorf(format string, args ...interface{}) {
stdError.Errorf(format, args...)
}

// Panicf logs a message at level Panic on the standard logger.
func Panicf(format string, args ...interface{}) {
stdError.Panicf(format, args...)
}

// Fatalf logs a message at level Fatal on the standard logger.
func Fatalf(format string, args ...interface{}) {
stdError.Fatalf(format, args...)
}

// Debugln logs a message at level Debug on the standard logger.
func Debugln(args ...interface{}) {
stdOut.Debugln(args...)
}

// Println logs a message at level Info on the standard logger.
func Println(args ...interface{}) {
stdOut.Println(args...)
}

// Infoln logs a message at level Info on the standard logger.
func Infoln(args ...interface{}) {
stdOut.Infoln(args...)
}

// Warnln logs a message at level Warn on the standard logger.
func Warnln(args ...interface{}) {
stdError.Warnln(args...)
}

// Warningln logs a message at level Warn on the standard logger.
func Warningln(args ...interface{}) {
stdError.Warningln(args...)
}

// Errorln logs a message at level Error on the standard logger.
func Errorln(args ...interface{}) {
stdError.Errorln(args...)
}

// Panicln logs a message at level Panic on the standard logger.
func Panicln(args ...interface{}) {
stdError.Panicln(args...)
}

// Fatalln logs a message at level Fatal on the standard logger.
func Fatalln(args ...interface{}) {
stdError.Fatalln(args...)
}
3 changes: 2 additions & 1 deletion preflight/mandatory.go
Original file line number Diff line number Diff line change
Expand Up @@ -18,7 +18,8 @@ package preflight

import (
"fmt"
"log"

log "github.com/platform9/etcdadm/pkg/logrus"

"github.com/platform9/etcdadm/apis"
"github.com/platform9/etcdadm/service"
Expand Down

Some generated files are not rendered by default. Learn more about how customized files appear on GitHub.

Loading

0 comments on commit df84f9a

Please sign in to comment.