Skip to content
This repository was archived by the owner on Apr 25, 2025. It is now read-only.

Commit 151ff03

Browse files
committed
[FAB-7776] Customizable default logger in SDK Logging
The objective is to inject custom logger in place of default logger which can reuse leveled modules. Change-Id: I23c47e5b276564e65c336137c90d538684a66f88 Signed-off-by: Sudesh Shetty <sudesh.shetty@securekey.com>
1 parent fa39e8e commit 151ff03

File tree

19 files changed

+865
-613
lines changed

19 files changed

+865
-613
lines changed

def/fabapi/deprecated.go

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -15,6 +15,7 @@ import (
1515
"github.com/hyperledger/fabric-sdk-go/pkg/fabsdk"
1616
apisdk "github.com/hyperledger/fabric-sdk-go/pkg/fabsdk/api"
1717
"github.com/hyperledger/fabric-sdk-go/pkg/logging"
18+
1819
"github.com/pkg/errors"
1920
)
2021

def/factory/defcore/corefactory.go

Lines changed: 3 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -19,7 +19,8 @@ import (
1919
"github.com/hyperledger/fabric-sdk-go/pkg/errors"
2020
kvs "github.com/hyperledger/fabric-sdk-go/pkg/fabric-client/keyvaluestore"
2121
signingMgr "github.com/hyperledger/fabric-sdk-go/pkg/fabric-client/signingmgr"
22-
"github.com/hyperledger/fabric-sdk-go/pkg/logging/deflogger"
22+
23+
"github.com/hyperledger/fabric-sdk-go/pkg/logging/modlog"
2324
)
2425

2526
// ProviderFactory represents the default SDK provider factory.
@@ -92,5 +93,5 @@ func (f *ProviderFactory) NewFabricProvider(config apiconfig.Config, stateStore
9293
// NewLoggerProvider returns a new default implementation of a logger backend
9394
// This function is separated from the factory to allow logger creation first.
9495
func NewLoggerProvider() apilogging.LoggerProvider {
95-
return deflogger.LoggerProvider()
96+
return modlog.LoggerProvider()
9697
}

def/factory/defcore/corefactory_test.go

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -20,7 +20,7 @@ import (
2020
kvs "github.com/hyperledger/fabric-sdk-go/pkg/fabric-client/keyvaluestore"
2121
"github.com/hyperledger/fabric-sdk-go/pkg/fabric-client/mocks"
2222
signingMgr "github.com/hyperledger/fabric-sdk-go/pkg/fabric-client/signingmgr"
23-
"github.com/hyperledger/fabric-sdk-go/pkg/logging/deflogger"
23+
"github.com/hyperledger/fabric-sdk-go/pkg/logging/modlog"
2424
)
2525

2626
func TestNewConfigProvider(t *testing.T) {
@@ -183,7 +183,7 @@ func TestNewFactoryFabricProvider(t *testing.T) {
183183
func TestNewLoggingProvider(t *testing.T) {
184184
logger := NewLoggerProvider()
185185

186-
_, ok := logger.(*deflogger.Provider)
186+
_, ok := logger.(*modlog.Provider)
187187
if !ok {
188188
t.Fatalf("Unexpected logger provider created")
189189
}

pkg/fabsdk/defpkgsuite.go

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -12,7 +12,7 @@ import (
1212
"github.com/hyperledger/fabric-sdk-go/def/factory/defcore"
1313
"github.com/hyperledger/fabric-sdk-go/def/factory/defsvc"
1414
apisdk "github.com/hyperledger/fabric-sdk-go/pkg/fabsdk/api"
15-
"github.com/hyperledger/fabric-sdk-go/pkg/logging/deflogger"
15+
"github.com/hyperledger/fabric-sdk-go/pkg/logging/modlog"
1616
)
1717

1818
type defPkgSuite struct{}
@@ -34,5 +34,5 @@ func (ps *defPkgSuite) Session() (apisdk.SessionClientFactory, error) {
3434
}
3535

3636
func (ps *defPkgSuite) Logger() (apilogging.LoggerProvider, error) {
37-
return deflogger.LoggerProvider(), nil
37+
return modlog.LoggerProvider(), nil
3838
}

pkg/fabsdk/mocks_test.go

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -17,7 +17,7 @@ import (
1717
"github.com/hyperledger/fabric-sdk-go/def/factory/defsvc"
1818
"github.com/hyperledger/fabric-sdk-go/pkg/errors"
1919
apisdk "github.com/hyperledger/fabric-sdk-go/pkg/fabsdk/api"
20-
"github.com/hyperledger/fabric-sdk-go/pkg/logging/deflogger"
20+
"github.com/hyperledger/fabric-sdk-go/pkg/logging/modlog"
2121
)
2222

2323
type mockCorePkg struct {
@@ -116,5 +116,5 @@ func (ps *mockPkgSuite) Logger() (apilogging.LoggerProvider, error) {
116116
if ps.errOnLogger {
117117
return nil, errors.New("Error")
118118
}
119-
return deflogger.LoggerProvider(), nil
119+
return modlog.LoggerProvider(), nil
120120
}

pkg/fabsdk/singleton_test.go

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -14,7 +14,7 @@ import (
1414
"github.com/hyperledger/fabric-sdk-go/api/apilogging"
1515
configImpl "github.com/hyperledger/fabric-sdk-go/pkg/config"
1616
"github.com/hyperledger/fabric-sdk-go/pkg/logging"
17-
"github.com/hyperledger/fabric-sdk-go/pkg/logging/deflogger"
17+
"github.com/hyperledger/fabric-sdk-go/pkg/logging/modlog"
1818
)
1919

2020
func TestDefLoggerFactory(t *testing.T) {
@@ -97,7 +97,7 @@ type MockLoggerFactory struct {
9797
func NewMockLoggerFactory() *MockLoggerFactory {
9898
lf := MockLoggerFactory{}
9999
lf.ActiveModules = make(map[string]bool)
100-
lf.logger = deflogger.LoggerProvider()
100+
lf.logger = modlog.LoggerProvider()
101101

102102
return &lf
103103
}
Lines changed: 10 additions & 6 deletions
Original file line numberDiff line numberDiff line change
@@ -4,7 +4,7 @@ Copyright SecureKey Technologies Inc. All Rights Reserved.
44
SPDX-License-Identifier: Apache-2.0
55
*/
66

7-
package deflogger
7+
package decorator
88

99
import (
1010
"github.com/hyperledger/fabric-sdk-go/api/apilogging"
@@ -15,25 +15,29 @@ type callerInfoKey struct {
1515
level apilogging.Level
1616
}
1717

18-
type callerInfo struct {
18+
//CallerInfo maintains module-level based information to toggle caller info
19+
type CallerInfo struct {
1920
showcaller map[callerInfoKey]bool
2021
}
2122

22-
func (l *callerInfo) ShowCallerInfo(module string, level apilogging.Level) {
23+
//ShowCallerInfo enables caller info for given module and level
24+
func (l *CallerInfo) ShowCallerInfo(module string, level apilogging.Level) {
2325
if l.showcaller == nil {
2426
l.showcaller = l.getDefaultCallerInfoSetting()
2527
}
2628
l.showcaller[callerInfoKey{module, level}] = true
2729
}
2830

29-
func (l *callerInfo) HideCallerInfo(module string, level apilogging.Level) {
31+
//HideCallerInfo disables caller info for given module and level
32+
func (l *CallerInfo) HideCallerInfo(module string, level apilogging.Level) {
3033
if l.showcaller == nil {
3134
l.showcaller = l.getDefaultCallerInfoSetting()
3235
}
3336
l.showcaller[callerInfoKey{module, level}] = false
3437
}
3538

36-
func (l *callerInfo) IsCallerInfoEnabled(module string, level apilogging.Level) bool {
39+
//IsCallerInfoEnabled returns if callerinfo enabled for given module and level
40+
func (l *CallerInfo) IsCallerInfoEnabled(module string, level apilogging.Level) bool {
3741
showcaller, exists := l.showcaller[callerInfoKey{module, level}]
3842
if exists == false {
3943
//If no callerinfo setting exists, then look for default
@@ -46,7 +50,7 @@ func (l *callerInfo) IsCallerInfoEnabled(module string, level apilogging.Level)
4650
}
4751

4852
//getDefaultCallerInfoSetting default setting for callerinfo
49-
func (l *callerInfo) getDefaultCallerInfoSetting() map[callerInfoKey]bool {
53+
func (l *CallerInfo) getDefaultCallerInfoSetting() map[callerInfoKey]bool {
5054
return map[callerInfoKey]bool{
5155
callerInfoKey{"", apilogging.CRITICAL}: true,
5256
callerInfoKey{"", apilogging.ERROR}: true,
Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -4,7 +4,7 @@ Copyright SecureKey Technologies Inc. All Rights Reserved.
44
SPDX-License-Identifier: Apache-2.0
55
*/
66

7-
package deflogger
7+
package decorator
88

99
import (
1010
"testing"
@@ -15,7 +15,7 @@ import (
1515

1616
func TestCallerInfoSetting(t *testing.T) {
1717

18-
sampleCallerInfoSetting := callerInfo{}
18+
sampleCallerInfoSetting := CallerInfo{}
1919
samppleModuleName := "sample-module-name"
2020

2121
sampleCallerInfoSetting.ShowCallerInfo(samppleModuleName, apilogging.DEBUG)
Lines changed: 6 additions & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -4,18 +4,19 @@ Copyright SecureKey Technologies Inc. All Rights Reserved.
44
SPDX-License-Identifier: Apache-2.0
55
*/
66

7-
package deflogger
7+
package decorator
88

99
import (
1010
"github.com/hyperledger/fabric-sdk-go/api/apilogging"
1111
)
1212

13-
type moduleLeveled struct {
13+
//ModuleLevels maintains log levels based on module
14+
type ModuleLevels struct {
1415
levels map[string]apilogging.Level
1516
}
1617

1718
// GetLevel returns the log level for the given module.
18-
func (l *moduleLeveled) GetLevel(module string) apilogging.Level {
19+
func (l *ModuleLevels) GetLevel(module string) apilogging.Level {
1920
level, exists := l.levels[module]
2021
if exists == false {
2122
level, exists = l.levels[""]
@@ -28,14 +29,14 @@ func (l *moduleLeveled) GetLevel(module string) apilogging.Level {
2829
}
2930

3031
// SetLevel sets the log level for the given module.
31-
func (l *moduleLeveled) SetLevel(module string, level apilogging.Level) {
32+
func (l *ModuleLevels) SetLevel(module string, level apilogging.Level) {
3233
if l.levels == nil {
3334
l.levels = make(map[string]apilogging.Level)
3435
}
3536
l.levels[module] = level
3637
}
3738

3839
// IsEnabledFor will return true if logging is enabled for the given module.
39-
func (l *moduleLeveled) IsEnabledFor(module string, level apilogging.Level) bool {
40+
func (l *ModuleLevels) IsEnabledFor(module string, level apilogging.Level) bool {
4041
return level <= l.GetLevel(module)
4142
}
Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -3,7 +3,7 @@ Copyright SecureKey Technologies Inc. All Rights Reserved.
33
44
SPDX-License-Identifier: Apache-2.0
55
*/
6-
package deflogger
6+
package decorator
77

88
import (
99
"testing"
@@ -14,7 +14,7 @@ import (
1414

1515
func TestLogLevels(t *testing.T) {
1616

17-
mlevel := moduleLeveled{}
17+
mlevel := ModuleLevels{}
1818

1919
mlevel.SetLevel("module-xyz-info", apilogging.INFO)
2020
mlevel.SetLevel("module-xyz-debug", apilogging.DEBUG)

0 commit comments

Comments
 (0)