Skip to content
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
1 change: 1 addition & 0 deletions CHANGELOG.md
Original file line number Diff line number Diff line change
Expand Up @@ -3,6 +3,7 @@
## [master](https://github.com/arangodb/kube-arangodb/tree/master) (N/A)
- Add v2alpha1 API for ArangoDeployment and ArangoDeploymentReplication
- Migrate CRD to apiextensions.k8s.io/v1
- Add customizable log levels per service

## [1.1.2](https://github.com/arangodb/kube-arangodb/tree/1.1.2) (2020-11-11)
- Fix Bootstrap phase and move it under Plan
Expand Down
6 changes: 3 additions & 3 deletions main.go
Original file line number Diff line number Diff line change
Expand Up @@ -92,7 +92,7 @@ var (
Run: cmdMainRun,
}

logLevel string
logLevels []string
cliLog = logging.NewRootLogger()
logService logging.Service
serverOptions struct {
Expand Down Expand Up @@ -131,7 +131,7 @@ func init() {
f.StringVar(&serverOptions.tlsSecretName, "server.tls-secret-name", "", "Name of secret containing tls.crt & tls.key for HTTPS server (if empty, self-signed certificate is used)")
f.StringVar(&serverOptions.adminSecretName, "server.admin-secret-name", defaultAdminSecretName, "Name of secret containing username + password for login to the dashboard")
f.BoolVar(&serverOptions.allowAnonymous, "server.allow-anonymous-access", false, "Allow anonymous access to the dashboard")
f.StringVar(&logLevel, "log.level", defaultLogLevel, "Set initial log level")
f.StringArrayVar(&logLevels, "log.level", []string{defaultLogLevel}, "Set log levels in format <level> or <logger>=<level>")
f.BoolVar(&operatorOptions.enableDeployment, "operator.deployment", false, "Enable to run the ArangoDeployment operator")
f.BoolVar(&operatorOptions.enableDeploymentReplication, "operator.deployment-replication", false, "Enable to run the ArangoDeploymentReplication operator")
f.BoolVar(&operatorOptions.enableStorage, "operator.storage", false, "Enable to run the ArangoLocalStorage operator")
Expand Down Expand Up @@ -170,7 +170,7 @@ func cmdMainRun(cmd *cobra.Command, args []string) {

// Prepare log service
var err error
logService, err = logging.NewService(logLevel)
logService, err = logging.NewService(defaultLogLevel, logLevels)
if err != nil {
cliLog.Fatal().Err(err).Msg("Failed to initialize log service")
}
Expand Down
34 changes: 22 additions & 12 deletions pkg/logging/logger.go
Original file line number Diff line number Diff line change
Expand Up @@ -29,16 +29,9 @@ import (
"sync"
"time"

"github.com/rs/zerolog"
)
"github.com/pkg/errors"

var (
// The defaultLevels list is used during development to increase the
// default level for components that we care a little less about.
defaultLevels = map[string]string{
//"operator": "info",
//"something.status": "info",
}
"github.com/rs/zerolog"
)

// Service exposes the interfaces for a logger service
Expand Down Expand Up @@ -70,7 +63,7 @@ func NewRootLogger() zerolog.Logger {
}

// NewService creates a new Service.
func NewService(defaultLevel string) (Service, error) {
func NewService(defaultLevel string, overrides []string) (Service, error) {
l, err := stringToLevel(defaultLevel)
if err != nil {
return nil, maskAny(err)
Expand All @@ -81,8 +74,25 @@ func NewService(defaultLevel string) (Service, error) {
defaultLevel: l,
levels: make(map[string]zerolog.Level),
}
for k, v := range defaultLevels {
s.MustSetLevel(k, v)

for _, override := range overrides {
levelParts := strings.Split(override, "=")
switch size := len(levelParts); size {
case 1:
level, err := stringToLevel(levelParts[0])
if err != nil {
return nil, maskAny(err)
}
s.defaultLevel = level
case 2:
level, err := stringToLevel(levelParts[1])
if err != nil {
return nil, maskAny(err)
}
s.levels[levelParts[0]] = level
default:
return nil, errors.Errorf("invalid log definition %s: Length %d is not equal 1 or 2", override, size)
}
}
return s, nil
}
Expand Down
2 changes: 1 addition & 1 deletion storage.go
Original file line number Diff line number Diff line change
Expand Up @@ -64,7 +64,7 @@ func init() {
func cmdStorageProvisionerRun(cmd *cobra.Command, args []string) {
//goflag.CommandLine.Parse([]string{"-logtostderr"})
var err error
logService, err = logging.NewService(logLevel)
logService, err = logging.NewService(defaultLogLevel, logLevels)
if err != nil {
cliLog.Fatal().Err(err).Msg("Failed to initialize log service")
}
Expand Down