Skip to content

Commit 47dd1cb

Browse files
Refactor Logger (#13294)
Refactor Logger to make a logger interface and make it possible to wrap loggers for specific purposes. Co-authored-by: techknowlogick <[email protected]>
1 parent ffc8ce7 commit 47dd1cb

File tree

9 files changed

+224
-125
lines changed

9 files changed

+224
-125
lines changed

models/log.go

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -15,7 +15,7 @@ import (
1515
// XORMLogBridge a logger bridge from Logger to xorm
1616
type XORMLogBridge struct {
1717
showSQL bool
18-
logger *log.Logger
18+
logger log.Logger
1919
}
2020

2121
// NewXORMLogger inits a log bridge for xorm

modules/indexer/code/elastic_search.go

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -40,7 +40,7 @@ type ElasticSearchIndexer struct {
4040
}
4141

4242
type elasticLogger struct {
43-
*log.Logger
43+
log.Logger
4444
}
4545

4646
func (l elasticLogger) Printf(format string, args ...interface{}) {

modules/indexer/issues/elastic_search.go

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -27,11 +27,11 @@ type ElasticSearchIndexer struct {
2727
}
2828

2929
type elasticLogger struct {
30-
*log.Logger
30+
log.LevelLogger
3131
}
3232

3333
func (l elasticLogger) Printf(format string, args ...interface{}) {
34-
_ = l.Logger.Log(2, l.Logger.GetLevel(), format, args...)
34+
_ = l.Log(2, l.GetLevel(), format, args...)
3535
}
3636

3737
// NewElasticSearchIndexer creates a new elasticsearch indexer

modules/log/colors.go

Lines changed: 9 additions & 9 deletions
Original file line numberDiff line numberDiff line change
@@ -158,15 +158,15 @@ func ColorBytes(attrs ...ColorAttribute) []byte {
158158
return bytes
159159
}
160160

161-
var levelToColor = map[Level]string{
162-
TRACE: ColorString(Bold, FgCyan),
163-
DEBUG: ColorString(Bold, FgBlue),
164-
INFO: ColorString(Bold, FgGreen),
165-
WARN: ColorString(Bold, FgYellow),
166-
ERROR: ColorString(Bold, FgRed),
167-
CRITICAL: ColorString(Bold, BgMagenta),
168-
FATAL: ColorString(Bold, BgRed),
169-
NONE: ColorString(Reset),
161+
var levelToColor = map[Level][]byte{
162+
TRACE: ColorBytes(Bold, FgCyan),
163+
DEBUG: ColorBytes(Bold, FgBlue),
164+
INFO: ColorBytes(Bold, FgGreen),
165+
WARN: ColorBytes(Bold, FgYellow),
166+
ERROR: ColorBytes(Bold, FgRed),
167+
CRITICAL: ColorBytes(Bold, BgMagenta),
168+
FATAL: ColorBytes(Bold, BgRed),
169+
NONE: ColorBytes(Reset),
170170
}
171171

172172
var resetBytes = ColorBytes(Reset)

modules/log/level.go

Lines changed: 10 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -73,6 +73,16 @@ func (l Level) String() string {
7373
return "info"
7474
}
7575

76+
// Color returns the color string for this Level
77+
func (l Level) Color() *[]byte {
78+
color, ok := levelToColor[l]
79+
if ok {
80+
return &(color)
81+
}
82+
none := levelToColor[NONE]
83+
return &none
84+
}
85+
7686
// MarshalJSON takes a Level and turns it into text
7787
func (l Level) MarshalJSON() ([]byte, error) {
7888
buffer := bytes.NewBufferString(`"`)

modules/log/log.go

Lines changed: 11 additions & 11 deletions
Original file line numberDiff line numberDiff line change
@@ -16,16 +16,16 @@ type loggerMap struct {
1616
sync.Map
1717
}
1818

19-
func (m *loggerMap) Load(k string) (*Logger, bool) {
19+
func (m *loggerMap) Load(k string) (*MultiChannelledLogger, bool) {
2020
v, ok := m.Map.Load(k)
2121
if !ok {
2222
return nil, false
2323
}
24-
l, ok := v.(*Logger)
24+
l, ok := v.(*MultiChannelledLogger)
2525
return l, ok
2626
}
2727

28-
func (m *loggerMap) Store(k string, v *Logger) {
28+
func (m *loggerMap) Store(k string, v *MultiChannelledLogger) {
2929
m.Map.Store(k, v)
3030
}
3131

@@ -42,7 +42,7 @@ var (
4242
)
4343

4444
// NewLogger create a logger for the default logger
45-
func NewLogger(bufLen int64, name, provider, config string) *Logger {
45+
func NewLogger(bufLen int64, name, provider, config string) *MultiChannelledLogger {
4646
err := NewNamedLogger(DEFAULT, bufLen, name, provider, config)
4747
if err != nil {
4848
CriticalWithSkip(1, "Unable to create default logger: %v", err)
@@ -83,7 +83,7 @@ func DelLogger(name string) error {
8383
}
8484

8585
// GetLogger returns either a named logger or the default logger
86-
func GetLogger(name string) *Logger {
86+
func GetLogger(name string) *MultiChannelledLogger {
8787
logger, ok := NamedLoggers.Load(name)
8888
if ok {
8989
return logger
@@ -196,7 +196,7 @@ func IsFatal() bool {
196196
// Pause pauses all the loggers
197197
func Pause() {
198198
NamedLoggers.Range(func(key, value interface{}) bool {
199-
logger := value.(*Logger)
199+
logger := value.(*MultiChannelledLogger)
200200
logger.Pause()
201201
logger.Flush()
202202
return true
@@ -206,7 +206,7 @@ func Pause() {
206206
// Resume resumes all the loggers
207207
func Resume() {
208208
NamedLoggers.Range(func(key, value interface{}) bool {
209-
logger := value.(*Logger)
209+
logger := value.(*MultiChannelledLogger)
210210
logger.Resume()
211211
return true
212212
})
@@ -216,7 +216,7 @@ func Resume() {
216216
func ReleaseReopen() error {
217217
var accumulatedErr error
218218
NamedLoggers.Range(func(key, value interface{}) bool {
219-
logger := value.(*Logger)
219+
logger := value.(*MultiChannelledLogger)
220220
if err := logger.ReleaseReopen(); err != nil {
221221
if accumulatedErr == nil {
222222
accumulatedErr = fmt.Errorf("Error reopening %s: %v", key.(string), err)
@@ -250,15 +250,15 @@ func Log(skip int, level Level, format string, v ...interface{}) {
250250

251251
// LoggerAsWriter is a io.Writer shim around the gitea log
252252
type LoggerAsWriter struct {
253-
ourLoggers []*Logger
253+
ourLoggers []*MultiChannelledLogger
254254
level Level
255255
}
256256

257257
// NewLoggerAsWriter creates a Writer representation of the logger with setable log level
258-
func NewLoggerAsWriter(level string, ourLoggers ...*Logger) *LoggerAsWriter {
258+
func NewLoggerAsWriter(level string, ourLoggers ...*MultiChannelledLogger) *LoggerAsWriter {
259259
if len(ourLoggers) == 0 {
260260
l, _ := NamedLoggers.Load(DEFAULT)
261-
ourLoggers = []*Logger{l}
261+
ourLoggers = []*MultiChannelledLogger{l}
262262
}
263263
l := &LoggerAsWriter{
264264
ourLoggers: ourLoggers,

modules/log/log_test.go

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -11,7 +11,7 @@ import (
1111
"github.com/stretchr/testify/assert"
1212
)
1313

14-
func baseConsoleTest(t *testing.T, logger *Logger) (chan []byte, chan bool) {
14+
func baseConsoleTest(t *testing.T, logger *MultiChannelledLogger) (chan []byte, chan bool) {
1515
written := make(chan []byte)
1616
closed := make(chan bool)
1717

0 commit comments

Comments
 (0)