go-ml.dev/pkg/base@v0.0.0-20200610162856-60c38abac71b/fu/verbose/verbose.go (about)

     1  package verbose
     2  
     3  import (
     4  	"fmt"
     5  	"go-ml.dev/pkg/zorros/zlog"
     6  )
     7  
     8  type VerboseKind int
     9  
    10  const (
    11  	Silent VerboseKind = iota
    12  	Print
    13  	Log
    14  )
    15  
    16  var Verbose = Silent
    17  
    18  func Markup() string {
    19  	return "### "
    20  }
    21  
    22  func Println(a ...interface{}) {
    23  	switch Verbose {
    24  	case Print:
    25  		fmt.Println(append([]interface{}{Markup()}, a...))
    26  	case Log:
    27  		zlog.Info(a...)
    28  	}
    29  }
    30  
    31  func Printf(f string, a ...interface{}) {
    32  	switch Verbose {
    33  	case Print:
    34  		fmt.Printf(f+"\n", a...)
    35  	case Log:
    36  		zlog.Infof(f, a...)
    37  	}
    38  }
    39  
    40  func BeVerbose(kind VerboseKind) (old VerboseKind) {
    41  	old = Verbose
    42  	Verbose = kind
    43  	return
    44  }
    45  
    46  func (old VerboseKind) Revert() {
    47  	Verbose = old
    48  }