Skip to content

Commit

Permalink
[FAB-6356] enable/disable callerinfo by module/loglevel
Browse files Browse the repository at this point in the history
For Go-SDK, by default enabled it for all log levels
for sdk-go log module.

Restructured current package structure,
logging/logger.go - basic implementation
logging/default/* - default logger, level, callerinfo
logging/utils/* - moved common utility here to
avoid "import cycle not allowed in test" error


Change-Id: I29d7e635861168d615ef5fb082f8d2b9a12f2fe2
Signed-off-by: Sudesh Shetty <sudesh.shetty@securekey.com>
  • Loading branch information
sudeshrshetty committed Nov 14, 2017
1 parent 7731bd8 commit 73a1e9b
Show file tree
Hide file tree
Showing 24 changed files with 1,123 additions and 843 deletions.
17 changes: 12 additions & 5 deletions api/apilogging/logger.go
Expand Up @@ -54,9 +54,16 @@ type Logger interface {
// Level defines all available log levels for log messages.
type Level int

// Leveled interface is the interface required to be able to add leveled logging.
type Leveled interface {
GetLevel(string) Level
SetLevel(Level, string)
IsEnabledFor(Level, string) bool
// Log levels.
const (
CRITICAL Level = iota
ERROR
WARNING
INFO
DEBUG
)

//LoggingProvider - logging provider factory
type LoggingProvider interface {
GetLogger(module string) Logger
}
7 changes: 7 additions & 0 deletions def/fabapi/fabapi.go
Expand Up @@ -16,6 +16,8 @@ import (
"github.com/hyperledger/fabric-sdk-go/def/fabapi/context/defprovider"
"github.com/hyperledger/fabric-sdk-go/def/fabapi/opt"
"github.com/hyperledger/fabric-sdk-go/pkg/errors"
"github.com/hyperledger/fabric-sdk-go/pkg/logging"
"github.com/hyperledger/fabric-sdk-go/pkg/logging/deflogger"
"github.com/hyperledger/fabric-sdk-go/third_party/github.com/hyperledger/fabric/bccsp"
)

Expand Down Expand Up @@ -72,6 +74,11 @@ func NewSDK(options Options) (*FabricSDK, error) {
Options: options,
}

//Initialize logging provider with default logging provider if not yet initialized
if !logging.IsLoggerInitialized() {
logging.InitLogger(deflogger.GetLoggingProvider())
}

// Initialize default factories (if needed)
if sdk.ProviderFactory == nil {
sdk.ProviderFactory = defprovider.NewDefaultProviderFactory()
Expand Down
Expand Up @@ -52,5 +52,5 @@ func (l *Logger) Warning(args ...interface{}) {

// IsEnabledFor bridges calls to the Go SDK logger's IsEnabledFor.
func (l *Logger) IsEnabledFor(level apilogging.Level) bool {
return logging.IsEnabledFor(level, l.module)
return logging.IsEnabledFor(l.module, level)
}
4 changes: 2 additions & 2 deletions pkg/config/config.go
Expand Up @@ -76,7 +76,7 @@ func InitConfigWithCmdRoot(configFile string, cmdRootPrefix string) (*Config, er
}

loggingLevelString := myViper.GetString("client.logging.level")
logLevel := logging.INFO
logLevel := apilogging.INFO
if loggingLevelString != "" {
logger.Infof("fabric_sdk_go Logging level from the config: %v", loggingLevelString)
var err error
Expand All @@ -85,7 +85,7 @@ func InitConfigWithCmdRoot(configFile string, cmdRootPrefix string) (*Config, er
panic(err)
}
}
logging.SetLevel(apilogging.Level(logLevel), "fabric_sdk_go")
logging.SetLevel("fabric_sdk_go", logLevel)

logger.Infof("fabric_sdk_go Logging level is finally set to: %s", logging.GetLevel("fabric_sdk_go"))
return &Config{tlsCertPool: x509.NewCertPool(), configViper: myViper}, nil
Expand Down
Expand Up @@ -13,6 +13,7 @@ import (
"github.com/golang/protobuf/proto"
"github.com/hyperledger/fabric-sdk-go/api/apiconfig"
"github.com/hyperledger/fabric-sdk-go/api/apifabclient"
"github.com/hyperledger/fabric-sdk-go/api/apilogging"
"github.com/hyperledger/fabric-sdk-go/def/fabapi"
"github.com/hyperledger/fabric-sdk-go/def/fabapi/context/defprovider"
"github.com/hyperledger/fabric-sdk-go/internal/github.com/hyperledger/fabric/core/common/ccprovider"
Expand Down Expand Up @@ -167,8 +168,8 @@ func verify(t *testing.T, service apifabclient.SelectionService, expectedPeerGro
// Set the log level to WARNING since the following spits out too much info in DEBUG
module := "pg-resolver"
level := logging.GetLevel(module)
logging.SetLevel(logging.WARNING, module)
defer logging.SetLevel(level, module)
logging.SetLevel(module, apilogging.WARNING)
defer logging.SetLevel(module, level)

for i := 0; i < len(expectedPeerGroups); i++ {
peers, err := service.GetEndorsersForChaincode(channelPeers, chaincodeIDs...)
Expand Down
44 changes: 0 additions & 44 deletions pkg/logging/callerInfo.go

This file was deleted.

25 changes: 0 additions & 25 deletions pkg/logging/callerInfo_test.go

This file was deleted.

218 changes: 0 additions & 218 deletions pkg/logging/defaultlogger.go

This file was deleted.

0 comments on commit 73a1e9b

Please sign in to comment.