Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

politeiawww: Add logger package. #1527

Merged
merged 1 commit into from
Oct 5, 2021
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
32 changes: 11 additions & 21 deletions politeiawww/config.go
Original file line number Diff line number Diff line change
Expand Up @@ -18,13 +18,13 @@ import (
"os"
"path/filepath"
"runtime"
"sort"
"strings"
"time"

"github.com/decred/dcrd/hdkeychain/v3"
"github.com/decred/politeia/politeiad/api/v1/identity"
"github.com/decred/politeia/politeiawww/config"
"github.com/decred/politeia/politeiawww/logger"
"github.com/decred/politeia/util/version"

v1 "github.com/decred/politeia/politeiad/api/v1"
Expand Down Expand Up @@ -138,20 +138,6 @@ func validLogLevel(logLevel string) bool {
return false
}

// supportedSubsystems returns a sorted slice of the supported subsystems for
// logging purposes.
func supportedSubsystems() []string {
// Convert the subsystemLoggers map keys to a slice.
subsystems := make([]string, 0, len(subsystemLoggers))
for subsysID := range subsystemLoggers {
subsystems = append(subsystems, subsysID)
}

// Sort the subsytems for stable display.
sort.Strings(subsystems)
return subsystems
}

// parseAndSetDebugLevels attempts to parse the specified debug level and set
// the levels accordingly. An appropriate error is returned if anything is
// invalid.
Expand All @@ -166,7 +152,7 @@ func parseAndSetDebugLevels(debugLevel string) error {
}

// Change the logging level for all subsystems.
setLogLevels(debugLevel)
logger.SetLogLevels(debugLevel)

return nil
}
Expand All @@ -185,10 +171,14 @@ func parseAndSetDebugLevels(debugLevel string) error {
subsysID, logLevel := fields[0], fields[1]

// Validate subsystem.
if _, exists := subsystemLoggers[subsysID]; !exists {
subsystems := make(map[string]struct{})
for _, v := range logger.SupportedSubsystems() {
subsystems[v] = struct{}{}
}
if _, exists := subsystems[subsysID]; !exists {
str := "The specified subsystem [%v] is invalid -- " +
"supported subsytems %v"
return fmt.Errorf(str, subsysID, supportedSubsystems())
return fmt.Errorf(str, subsysID, logger.SupportedSubsystems())
}

// Validate log level.
Expand All @@ -197,7 +187,7 @@ func parseAndSetDebugLevels(debugLevel string) error {
return fmt.Errorf(str, logLevel)
}

setLogLevel(subsysID, logLevel)
logger.SetLogLevel(subsysID, logLevel)
}

return nil
Expand Down Expand Up @@ -580,13 +570,13 @@ func loadConfig() (*config.Config, []string, error) {

// Special show command to list supported subsystems and exit.
if cfg.DebugLevel == "show" {
fmt.Println("Supported subsystems", supportedSubsystems())
fmt.Println("Supported subsystems", logger.SupportedSubsystems())
os.Exit(0)
}

// Initialize log rotation. After log rotation has been initialized,
// the logger variables may be used.
initLogRotator(filepath.Join(cfg.LogDir, defaultLogFilename))
logger.InitLogRotator(filepath.Join(cfg.LogDir, defaultLogFilename))

// Parse, validate, and set debug log level(s).
if err := parseAndSetDebugLevels(cfg.DebugLevel); err != nil {
Expand Down
10 changes: 9 additions & 1 deletion politeiawww/events/log.go
Original file line number Diff line number Diff line change
Expand Up @@ -4,7 +4,10 @@

package events

import "github.com/decred/slog"
import (
"github.com/decred/politeia/politeiawww/logger"
"github.com/decred/slog"
)

// log is a logger that is initialized with no output filters. This
// means the package will not perform any logging by default until the caller
Expand All @@ -23,3 +26,8 @@ func DisableLog() {
func UseLogger(logger slog.Logger) {
log = logger
}

// Initialize the package logger.
func init() {
UseLogger(logger.NewSubsystem("EVNT"))
}
10 changes: 9 additions & 1 deletion politeiawww/legacy/cmsdatabase/cockroachdb/log.go
Original file line number Diff line number Diff line change
Expand Up @@ -4,7 +4,10 @@

package cockroachdb

import "github.com/decred/slog"
import (
"github.com/decred/politeia/politeiawww/logger"
"github.com/decred/slog"
)

// log is a logger that is initialized with no output filters. This
// means the package will not perform any logging by default until the caller
Expand All @@ -23,3 +26,8 @@ func DisableLog() {
func UseLogger(logger slog.Logger) {
log = logger
}

// Initialize the package logger.
func init() {
UseLogger(logger.NewSubsystem("CMDB"))
}
Original file line number Diff line number Diff line change
Expand Up @@ -4,7 +4,10 @@

package cockroachdb

import "github.com/decred/slog"
import (
"github.com/decred/politeia/politeiawww/logger"
"github.com/decred/slog"
)

// log is a logger that is initialized with no output filters. This
// means the package will not perform any logging by default until the caller
Expand All @@ -23,3 +26,8 @@ func DisableLog() {
func UseLogger(logger slog.Logger) {
log = logger
}

// Initialize the package logger.
func init() {
UseLogger(logger.NewSubsystem("GHDB"))
}
10 changes: 9 additions & 1 deletion politeiawww/legacy/codetracker/github/log.go
Original file line number Diff line number Diff line change
Expand Up @@ -4,7 +4,10 @@

package github

import "github.com/decred/slog"
import (
"github.com/decred/politeia/politeiawww/logger"
"github.com/decred/slog"
)

var log = slog.Disabled

Expand All @@ -13,3 +16,8 @@ var log = slog.Disabled
func UseLogger(logger slog.Logger) {
log = logger
}

// Initialize the package logger.
func init() {
UseLogger(logger.NewSubsystem("GHTR"))
}
10 changes: 9 additions & 1 deletion politeiawww/legacy/comments/log.go
Original file line number Diff line number Diff line change
Expand Up @@ -4,7 +4,10 @@

package comments

import "github.com/decred/slog"
import (
"github.com/decred/politeia/politeiawww/logger"
"github.com/decred/slog"
)

// log is a logger that is initialized with no output filters. This
// means the package will not perform any logging by default until the caller
Expand All @@ -23,3 +26,8 @@ func DisableLog() {
func UseLogger(logger slog.Logger) {
log = logger
}

// Initialize the package logger.
func init() {
UseLogger(logger.NewSubsystem("PWWW"))
}
10 changes: 9 additions & 1 deletion politeiawww/legacy/log.go
Original file line number Diff line number Diff line change
Expand Up @@ -4,7 +4,10 @@

package legacy

import "github.com/decred/slog"
import (
"github.com/decred/politeia/politeiawww/logger"
"github.com/decred/slog"
)

// log is a logger that is initialized with no output filters. This
// means the package will not perform any logging by default until the caller
Expand All @@ -23,3 +26,8 @@ func DisableLog() {
func UseLogger(logger slog.Logger) {
log = logger
}

// Initialize the package logger.
func init() {
UseLogger(logger.NewSubsystem("LWWW"))
}
10 changes: 9 additions & 1 deletion politeiawww/legacy/pi/log.go
Original file line number Diff line number Diff line change
Expand Up @@ -4,7 +4,10 @@

package pi

import "github.com/decred/slog"
import (
"github.com/decred/politeia/politeiawww/logger"
"github.com/decred/slog"
)

// log is a logger that is initialized with no output filters. This
// means the package will not perform any logging by default until the caller
Expand All @@ -23,3 +26,8 @@ func DisableLog() {
func UseLogger(logger slog.Logger) {
log = logger
}

// Initialize the package logger.
func init() {
UseLogger(logger.NewSubsystem("PWWW"))
}
10 changes: 4 additions & 6 deletions politeiawww/legacy/testing.go
Original file line number Diff line number Diff line change
Expand Up @@ -26,6 +26,7 @@ import (
"github.com/decred/politeia/politeiawww/config"
"github.com/decred/politeia/politeiawww/legacy/user"
"github.com/decred/politeia/politeiawww/legacy/user/localdb"
"github.com/decred/politeia/politeiawww/logger"
"github.com/decred/politeia/politeiawww/mail"
"github.com/decred/politeia/politeiawww/sessions"
"github.com/decred/politeia/util"
Expand Down Expand Up @@ -369,9 +370,9 @@ func newTestCMSwww(t *testing.T) (*Politeiawww, func()) {
t.Fatalf("open tmp dir: %v", err)
}

// Setup logging
// initLogRotator(filepath.Join(dataDir, "cmswww.test.log"))
// setLogLevels("off")
// Turn logging off
logger.InitLogRotator(filepath.Join(dataDir, "cmswww.test.log"))
logger.SetLogLevels("off")

// Setup config
xpub := "tpubVobLtToNtTq6TZNw4raWQok35PRPZou53vegZqNubtBTJMMFm" +
Expand Down Expand Up @@ -414,9 +415,6 @@ func newTestCMSwww(t *testing.T) (*Politeiawww, func()) {
t.Fatalf("create cookie key: %v", err)
}

// initLogRotator(filepath.Join(dataDir, "cmswww.test.log"))
// setLogLevels("off")

// Create politeiawww context
p := Politeiawww{
cfg: cfg,
Expand Down
10 changes: 9 additions & 1 deletion politeiawww/legacy/ticketvote/log.go
Original file line number Diff line number Diff line change
Expand Up @@ -4,7 +4,10 @@

package ticketvote

import "github.com/decred/slog"
import (
"github.com/decred/politeia/politeiawww/logger"
"github.com/decred/slog"
)

// log is a logger that is initialized with no output filters. This
// means the package will not perform any logging by default until the caller
Expand All @@ -23,3 +26,8 @@ func DisableLog() {
func UseLogger(logger slog.Logger) {
log = logger
}

// Initialize the package logger.
func init() {
UseLogger(logger.NewSubsystem("PWWW"))
}
10 changes: 9 additions & 1 deletion politeiawww/legacy/user/cockroachdb/log.go
Original file line number Diff line number Diff line change
Expand Up @@ -4,7 +4,10 @@

package cockroachdb

import "github.com/decred/slog"
import (
"github.com/decred/politeia/politeiawww/logger"
"github.com/decred/slog"
)

// log is a logger that is initialized with no output filters. This
// means the package will not perform any logging by default until the caller
Expand All @@ -23,3 +26,8 @@ func DisableLog() {
func UseLogger(logger slog.Logger) {
log = logger
}

// Initialize the package logger.
func init() {
UseLogger(logger.NewSubsystem("USER"))
}
10 changes: 9 additions & 1 deletion politeiawww/legacy/user/localdb/log.go
Original file line number Diff line number Diff line change
Expand Up @@ -4,7 +4,10 @@

package localdb

import "github.com/decred/slog"
import (
"github.com/decred/politeia/politeiawww/logger"
"github.com/decred/slog"
)

// log is a logger that is initialized with no output filters. This
// means the package will not perform any logging by default until the caller
Expand All @@ -23,3 +26,8 @@ func DisableLog() {
func UseLogger(logger slog.Logger) {
log = logger
}

// Initialize the package logger.
func init() {
UseLogger(logger.NewSubsystem("USER"))
}
10 changes: 9 additions & 1 deletion politeiawww/legacy/user/mysql/log.go
Original file line number Diff line number Diff line change
Expand Up @@ -4,7 +4,10 @@

package mysql

import "github.com/decred/slog"
import (
"github.com/decred/politeia/politeiawww/logger"
"github.com/decred/slog"
)

// log is a logger that is initialized with no output filters. This
// means the package will not perform any logging by default until the caller
Expand All @@ -23,3 +26,8 @@ func DisableLog() {
func UseLogger(logger slog.Logger) {
log = logger
}

// Initialize the package logger.
func init() {
UseLogger(logger.NewSubsystem("USER"))
}
Loading