Skip to content

Commit 6eb4f11

Browse files
lvan100lianghuan
authored andcommitted
111
1 parent 09bb4e3 commit 6eb4f11

File tree

2 files changed

+24
-24
lines changed

2 files changed

+24
-24
lines changed

log_refresh.go

Lines changed: 5 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -96,24 +96,25 @@ func RefreshConfig(s *barky.Storage) error {
9696
initAppenderRefs := func(v reflect.Value, cAppenders map[string]Appender) (*LoggerBase, error) {
9797
var (
9898
base *LoggerBase
99-
refs []*AppenderRef
99+
ref *AppenderRefs
100100
)
101101
switch config := v.Interface().(type) {
102102
case *SyncLogger:
103103
base = &config.LoggerBase
104-
refs = config.AppenderRefs.AppenderRefs
104+
ref = &config.AppenderRefs
105105
case *AsyncLogger:
106106
base = &config.LoggerBase
107-
refs = config.AppenderRefs.AppenderRefs
107+
ref = &config.AppenderRefs
108108
default: // for linter
109109
}
110-
for _, r := range refs {
110+
for _, r := range ref.AppenderRefs {
111111
appender, ok := cAppenders[r.Ref]
112112
if !ok {
113113
return nil, util.FormatError(nil, "appender %s not found", r.Ref)
114114
}
115115
r.Appender = appender
116116
}
117+
ref.sortByLevel()
117118
return base, nil
118119
}
119120

plugin_logger.go

Lines changed: 19 additions & 20 deletions
Original file line numberDiff line numberDiff line change
@@ -25,13 +25,14 @@ import (
2525

2626
func init() {
2727
RegisterConverter[BufferFullPolicy](ParseBufferFullPolicy)
28-
}
2928

30-
func init() {
31-
RegisterPlugin[FileLogger]("File", PluginTypeLogger)
29+
RegisterPlugin[AppenderRef]("AppenderRef", PluginTypeAppenderRef)
3230
RegisterPlugin[SyncLogger]("Logger", PluginTypeLogger)
3331
RegisterPlugin[AsyncLogger]("AsyncLogger", PluginTypeLogger)
34-
RegisterPlugin[AppenderRef]("AppenderRef", PluginTypeAppenderRef)
32+
RegisterPlugin[DiscardLogger]("Discard", PluginTypeLogger)
33+
RegisterPlugin[ConsoleLogger]("Console", PluginTypeLogger)
34+
RegisterPlugin[FileLogger]("File", PluginTypeLogger)
35+
RegisterPlugin[RollingFileLogger]("RollingFile", PluginTypeLogger)
3536
}
3637

3738
// Logger is the interface implemented by all loggers.
@@ -166,10 +167,8 @@ type SyncLogger struct {
166167
AppenderRefs
167168
}
168169

169-
func (c *SyncLogger) Start() error {
170-
c.AppenderRefs.sortByLevel()
171-
return nil
172-
}
170+
func (c *SyncLogger) Start() error { return nil }
171+
func (c *SyncLogger) Stop() {}
173172

174173
// Append sends the event directly to appenders (blocking).
175174
func (c *SyncLogger) Append(e *Event) {
@@ -189,8 +188,6 @@ func (c *SyncLogger) Write(b []byte) {
189188
c.writeToAppenders(MaxLevel, b)
190189
}
191190

192-
func (c *SyncLogger) Stop() {}
193-
194191
// BufferFullPolicy specifies what to do when an async buffer is full.
195192
type BufferFullPolicy int
196193

@@ -245,8 +242,6 @@ func (c *AsyncLogger) Start() error {
245242
c.wait = make(chan struct{})
246243
c.stop = &Event{}
247244

248-
c.AppenderRefs.sortByLevel()
249-
250245
// Worker goroutine to process buffered items
251246
go func() {
252247
for v := range c.buf {
@@ -342,16 +337,13 @@ func (c *AsyncLogger) Stop() {
342337
close(c.buf)
343338
}
344339

345-
// ----------------------------------------------------------------------------
346-
// rolling file logger
347-
// ----------------------------------------------------------------------------
348-
349340
// RollingFileLogger is a logger implementation that writes log events to files.
350341
// It can work in either synchronous or asynchronous mode depending on AsyncWrite.
351342
// It also supports splitting warning/error logs into a separate file.
352343
type RollingFileLogger struct {
353344
LoggerBase
354-
logger Logger
345+
logger Logger
346+
appenders []*AppenderRef
355347

356348
// File output configuration
357349
FileDir string `PluginAttribute:"fileDir,default=./logs"`
@@ -450,8 +442,13 @@ func initRollingFileLogger(
450442
default: // for linter
451443
}
452444

453-
// Start the underlying logger (and all appenders)
454-
return f.logger.Start()
445+
f.appenders = appenders
446+
for _, a := range f.appenders {
447+
if err := a.Start(); err != nil {
448+
return err
449+
}
450+
}
451+
return nil
455452
}
456453

457454
func (f *RollingFileLogger) Append(e *Event) {
@@ -463,5 +460,7 @@ func (f *RollingFileLogger) Write(b []byte) {
463460
}
464461

465462
func (f *RollingFileLogger) Stop() {
466-
463+
for _, a := range f.appenders {
464+
a.Stop()
465+
}
467466
}

0 commit comments

Comments
 (0)