You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@servicecomb.apache.org by li...@apache.org on 2018/09/25 01:11:18 UTC
[incubator-servicecomb-service-center] branch master updated:
SCB-927 The latest Lager is not compatible (#445)
This is an automated email from the ASF dual-hosted git repository.
littlecui pushed a commit to branch master
in repository https://gitbox.apache.org/repos/asf/incubator-servicecomb-service-center.git
The following commit(s) were added to refs/heads/master by this push:
new 95013d4 SCB-927 The latest Lager is not compatible (#445)
95013d4 is described below
commit 95013d48d6c3db50c10f575a29d0b773fb9c4128
Author: little-cui <su...@qq.com>
AuthorDate: Tue Sep 25 09:11:12 2018 +0800
SCB-927 The latest Lager is not compatible (#445)
* Update paas-lager and make k8s compatible
(cherry picked from commit 4af5629)
* Remove the istio/glog license
---
glide.yaml | 6 +++---
go.mod | 4 ++--
pkg/log/lager.go | 20 +++-----------------
pkg/log/log.go | 4 ++--
pkg/log/log_test.go | 9 ++++++++-
pkg/log/logger.go | 2 +-
pkg/log/zap.go | 12 ++++--------
scripts/release/LICENSE | 1 -
server/service/util/dependency_util.go | 6 ++++--
9 files changed, 27 insertions(+), 37 deletions(-)
diff --git a/glide.yaml b/glide.yaml
index 89eaa69..d7ea40c 100644
--- a/glide.yaml
+++ b/glide.yaml
@@ -4,7 +4,7 @@ import:
version: 91facc4ae520fef82c9aee6b6ae720d9ae789131
repo: https://github.com/Knetic/govaluate
- package: github.com/go-chassis/paas-lager
- version: master
+ version: 50655443dc96e3d633667ca6310251ba2a3fe5c9
repo: https://github.com/go-chassis/paas-lager
subpackages:
- third_party/forked/cloudfoundry/lager
@@ -356,8 +356,8 @@ import:
- pkg/version
- pkg/watch
- package: github.com/golang/glog
- version: 2cc4b790554d1a0c48fcc3aeb891e3de70cf8de0
- repo: https://github.com/istio/glog
+ version: 95a09b2413e9d5d7c26c85f0ed3cff886cba7f1e
+ repo: https://github.com/go-chassis/glog
- package: github.com/googleapis/gnostic
version: v0.1.0
repo: https://github.com/googleapis/gnostic
diff --git a/go.mod b/go.mod
index 0816985..b3d9226 100644
--- a/go.mod
+++ b/go.mod
@@ -1,7 +1,7 @@
module github.com/apache/incubator-servicecomb-service-center
replace (
- github.com/golang/glog v0.0.0-20160126235308-23def4e6c14b => github.com/istio/glog v0.0.0-20180224222734-2cc4b790554d
+ github.com/golang/glog v0.0.0-20160126235308-23def4e6c14b => github.com/go-chassis/glog v0.0.0-20180920075250-95a09b2413e9
go.uber.org/zap v1.9.0 => github.com/uber-go/zap v1.9.0
golang.org/x/crypto v0.0.0-20180820150726-614d502a4dac => github.com/golang/crypto v0.0.0-20180820150726-614d502a4dac
golang.org/x/net v0.0.0-20180824152047-4bcd98cce591 => github.com/golang/net v0.0.0-20180824152047-4bcd98cce591
@@ -33,7 +33,7 @@ require (
github.com/eapache/go-xerial-snappy v0.0.0-20180814174437-776d5712da21 // indirect
github.com/eapache/queue v1.1.0 // indirect
github.com/ghodss/yaml v1.0.0 // indirect
- github.com/go-chassis/paas-lager v0.0.0-20180905100939-eff93e5e67db
+ github.com/go-chassis/paas-lager v0.0.0-20180727081842-50655443dc96
github.com/go-logfmt/logfmt v0.3.0 // indirect
github.com/go-mesh/openlogging v0.0.0-20180905092207-9cc15d7752d3 // indirect
github.com/gogo/protobuf v1.1.1 // indirect
diff --git a/pkg/log/lager.go b/pkg/log/lager.go
index 2d88a07..d13e8fa 100644
--- a/pkg/log/lager.go
+++ b/pkg/log/lager.go
@@ -18,17 +18,12 @@
package log
import (
- "fmt"
"github.com/apache/incubator-servicecomb-service-center/pkg/util"
stlager "github.com/go-chassis/paas-lager"
"github.com/go-chassis/paas-lager/third_party/forked/cloudfoundry/lager"
- "os"
"runtime/debug"
- "time"
)
-const loggerCallerSkip = 1
-
var (
defaultLagerConfig = stlager.DefaultConfig()
stdOutWriters = []string{"stdout"}
@@ -84,7 +79,7 @@ func toLagerConfig(c Config) stlager.Config {
// newLog new log, unsafe
func NewLogger(cfg Config) *Logger {
if cfg.CallerSkip == 0 {
- cfg.CallerSkip = loggerCallerSkip
+ cfg.CallerSkip = globalCallerSkip
}
stlager.Init(toLagerConfig(cfg))
return &Logger{
@@ -99,17 +94,8 @@ type Logger struct {
}
func (l *Logger) Recover(r interface{}, callerSkip int) {
- file, method, line, ok := util.GetCaller(callerSkip + l.Config.CallerSkip)
- if ok {
- l.Errorf(nil, "recover from %s %s():%d! %v", util.FileLastName(file), method, line, r)
- return
- }
-
- file, method, line, _ = util.GetCaller(0)
- fmt.Fprintf(os.Stderr, "%s %s %s %d %s %s():%d %v\n",
- time.Now().Format("2006-01-02T15:04:05.000Z07:00"), "FATAL", "system", os.Getpid(),
- util.FileLastName(file), method, line, r)
- fmt.Fprintln(os.Stderr, util.BytesToStringWithNoCopy(debug.Stack()))
+ l.Errorf(nil, "recover from panic, %v", r)
+ l.Error(util.BytesToStringWithNoCopy(debug.Stack()), nil)
}
func (l *Logger) Sync() {
diff --git a/pkg/log/log.go b/pkg/log/log.go
index aac012d..99893d2 100644
--- a/pkg/log/log.go
+++ b/pkg/log/log.go
@@ -29,13 +29,13 @@ import (
const (
defaultLogLevel = "DEBUG"
- globalCallerSkip = 2
+ globalCallerSkip = 1
defaultLogRotatePeriod = 30 * time.Second
)
//log var
var (
- logger = NewLogger(Configure().WithCallerSkip(globalCallerSkip))
+ logger = NewLogger(Configure())
globalConfig Config
globalLogLevel lager.LogLevel
)
diff --git a/pkg/log/log_test.go b/pkg/log/log_test.go
index 388577d..be79e9c 100644
--- a/pkg/log/log_test.go
+++ b/pkg/log/log_test.go
@@ -85,8 +85,15 @@ func TestNewLogger(t *testing.T) {
}
func TestLogPanic(t *testing.T) {
+ defer func() {
+ defer func() {
+ LogPanic(recover())
+ }()
+ panic("bbb")
+ }()
defer Recover()
- panic("aaa")
+ var a *int
+ *a = 0
}
func BenchmarkLogger(b *testing.B) {
diff --git a/pkg/log/logger.go b/pkg/log/logger.go
index 1ba8fc6..f28af96 100644
--- a/pkg/log/logger.go
+++ b/pkg/log/logger.go
@@ -97,7 +97,7 @@ func LogInfoOrWarnf(start time.Time, format string, args ...interface{}) {
// LogPanic is a function can only be called in defer function.
func LogPanic(r interface{}) {
- logger.Recover(r, 3) // LogPanic()<-defer()<-panic()<-final caller
+ logger.Recover(r, 3) // LogPanic()<-Recover()<-panic()<-final caller
}
// Recover is a function call recover() and print the stack in log
diff --git a/pkg/log/zap.go b/pkg/log/zap.go
index 3b987df..828090f 100644
--- a/pkg/log/zap.go
+++ b/pkg/log/zap.go
@@ -31,8 +31,7 @@ import (
)
const (
- defaultLogLevel = "DEBUG"
- loggerCallerSkip = 1
+ defaultLogLevel = "DEBUG"
)
var (
@@ -76,7 +75,7 @@ func Configure() Config {
return Config{
LoggerLevel: defaultLogLevel,
LogFormatText: true,
- CallerSkip: loggerCallerSkip,
+ CallerSkip: globalCallerSkip,
}
}
@@ -199,14 +198,11 @@ func (l *Logger) Recover(r interface{}, callerSkip int) {
e := zapcore.Entry{
Level: zap.PanicLevel, // zapcore sync automatically when larger than ErrorLevel
Time: time.Now(),
- Caller: zapcore.NewEntryCaller(runtime.Caller(callerSkip + l.Config.CallerSkip)),
+ Caller: zapcore.NewEntryCaller(runtime.Caller(callerSkip + 1)),
Stack: zap.Stack("stack").String,
}
if err := l.zapLogger.Core().With([]zap.Field{zap.Reflect("recover", r)}).Write(e, nil); err != nil {
- file, _, line, _ := util.GetCaller(0)
- fmt.Fprintf(StderrSyncer, "%s\tERROR\t%s:%d\t%v\n",
- time.Now().Format("2006-01-02T15:04:05.000Z0700"),
- util.FileLastName(file), line, err)
+ fmt.Fprintf(StderrSyncer, "%s\tERROR\t%v\n", time.Now().Format("2006-01-02T15:04:05.000Z0700"), err)
fmt.Fprintln(StderrSyncer, util.BytesToStringWithNoCopy(debug.Stack()))
StderrSyncer.Sync()
return
diff --git a/scripts/release/LICENSE b/scripts/release/LICENSE
index bc9f83f..8376b4f 100644
--- a/scripts/release/LICENSE
+++ b/scripts/release/LICENSE
@@ -242,7 +242,6 @@ gopkg.in/yaml.v2 (d670f9405373e636a5a2765eea47fac0c9bc91a4)
k8s.io/client-go (release-7.0)
k8s.io/api (kubernetes-1.10.4)
k8s.io/apimachinery (kubernetes-1.10.4)
-github.com/istio/glog (2cc4b790554d1a0c48fcc3aeb891e3de70cf8de0)
github.com/googleapis/gnostic (v0.1.0)
github.com/google/gofuzz (24818f796faf91cd76ec7bddd72458fbced7a6c1)
gopkg.in/inf.v0 (v0.9.1)
diff --git a/server/service/util/dependency_util.go b/server/service/util/dependency_util.go
index 61249b4..348e000 100644
--- a/server/service/util/dependency_util.go
+++ b/server/service/util/dependency_util.go
@@ -429,7 +429,8 @@ func DeleteDependencyForDeleteService(domainProject string, serviceId string, se
func removeProviderRuleOfConsumer(ctx context.Context, domainProject string, cache map[string]bool) ([]registry.PluginOp, error) {
key := apt.GenerateConsumerDependencyRuleKey(domainProject, nil) + apt.SPLIT
- resp, err := backend.Store().DependencyRule().Search(ctx, registry.WithStrKey(key), registry.WithPrefix())
+ resp, err := backend.Store().DependencyRule().Search(ctx,
+ registry.WithStrKey(key), registry.WithPrefix())
if err != nil {
return nil, err
}
@@ -479,7 +480,8 @@ loop:
func removeProviderRuleKeys(ctx context.Context, domainProject string, cache map[string]bool) ([]registry.PluginOp, error) {
key := apt.GenerateProviderDependencyRuleKey(domainProject, nil) + apt.SPLIT
- resp, err := backend.Store().DependencyRule().Search(ctx, registry.WithStrKey(key), registry.WithPrefix())
+ resp, err := backend.Store().DependencyRule().Search(ctx,
+ registry.WithStrKey(key), registry.WithPrefix(), registry.WithKeyOnly())
if err != nil {
return nil, err
}