diff --git a/.github/workflows/build.yml b/.github/workflows/build.yml index b1f1c1d..fc52b63 100644 --- a/.github/workflows/build.yml +++ b/.github/workflows/build.yml @@ -1,4 +1,12 @@ -on: [ push, pull_request ] +on: + push: + branches: [main] + pull_request: + branches: [main] +permissions: + # Goreadme needs permissions to update pull requests comments and change contents. + pull-requests: write + contents: write name: Build jobs: test: @@ -16,6 +24,20 @@ jobs: - name: Checkout code uses: actions/checkout@v1 - name: Run tests - run: go test -v -race -covermode=atomic -coverprofile=coverage - - name: Upload coverage to Codecov - run: bash <(curl -s https://codecov.io/bash) + run: go test -v -race -covermode=atomic -coverprofile=coverage.out + - name: CodeCov + uses: codecov/codecov-action@v2 + goreadme: + runs-on: ubuntu-latest + needs: test + steps: + - name: Check out repository + uses: actions/checkout@v2 + - name: Update readme according to Go doc + uses: posener/goreadme@v1 + with: + badge-codecov: 'true' + badge-godoc: 'true' + badge-goreadme: 'true' + # Optional: Token allows goreadme to comment the PR with diff preview. + github-token: '${{ secrets.GITHUB_TOKEN }}' diff --git a/log.go b/log.go index 6c6d7e1..c51fe8b 100644 --- a/log.go +++ b/log.go @@ -6,6 +6,7 @@ import ( "log" "sync" "os" + "strings" "github.com/Fishwaldo/go-logadapter/utils" ) @@ -20,12 +21,14 @@ type Logger interface { Panic(message string, params ...interface{}) New(name string) (l Logger) With(key string, value interface{}) (l Logger) + SetPrefix(name string) + GetPrefix() (string) Sync() } //DefaultLogger uses Golang Standard Logging Libary func DefaultLogger() (l *StdLogger) { - stdlogger := log.New(os.Stderr, "sched - ", log.LstdFlags) + stdlogger := log.New(os.Stderr, "log - ", log.LstdFlags) stdlog := &StdLogger{Log: *stdlogger, keys: make(map[string]interface{})} return stdlog } @@ -119,3 +122,15 @@ func (l *StdLogger) SetLevel(level Log_Level) { func (l *StdLogger) GetLevel() (level Log_Level) { return l.level } + +func (l *StdLogger) SetPrefix(name string) { + l.Log.SetPrefix(fmt.Sprintf("%s - ", name)) +} + +func (l *StdLogger) GetPrefix() (string) { + temp := strings.Fields(l.Log.Prefix()) + if len(temp) > 0 { + return temp[0] + } + return "" +} \ No newline at end of file diff --git a/loggers/logrus/logrus.go b/loggers/logrus/logrus.go index 0fe02a2..e005c9d 100644 --- a/loggers/logrus/logrus.go +++ b/loggers/logrus/logrus.go @@ -1,6 +1,8 @@ package logruslog import ( + "fmt" + "github.com/Fishwaldo/go-logadapter" "github.com/sirupsen/logrus" ) @@ -43,7 +45,17 @@ func (l *LruLogger) New(name string) logadapter.Logger { nl := &LruLogger{Lru: logrus.NewEntry(l.Lru.Logger)} return nl } +func (l *LruLogger) SetPrefix(name string) { + l.Lru = l.Lru.WithField("Prefix", name) +} +func (l *LruLogger) GetPrefix() (string) { + prefix, ok := l.Lru.Data["Prefix"] + if ok { + return fmt.Sprint(prefix) + } + return "" +} //LogrusDefaultLogger Return Logger based on logrus with new instance func LogrusDefaultLogger() logadapter.Logger { // TODO control verbosity diff --git a/loggers/zap/log.go b/loggers/zap/log.go index ece69b1..e905612 100644 --- a/loggers/zap/log.go +++ b/loggers/zap/log.go @@ -47,6 +47,13 @@ func (l *ZapLogger) Sync() { } +func (l *ZapLogger) SetPrefix(name string) { + // XXX TODO +} +func (l ZapLogger) GetPrefix() (string) { + return "" +} + //DefaultLogger Return Default Sched Logger based on Zap's sugared logger func NewZapLogger() *ZapLogger { // TODO control verbosity