publish v1.5.1
This commit is contained in:
parent
7b3f56b01b
commit
49a1ee715b
@ -1,5 +1,13 @@
|
||||
# Changelog
|
||||
|
||||
## [1.5.1] - 2026-06-04
|
||||
- **缺陷修复: 异步控制台日志丢失**:
|
||||
- **修复**: 在 `writerService.processLog` 中补充了默认的回退逻辑。当处于异步 `starter` 运行模式下,且日志的 `writer` 和 `file` 都为 `nil`(即未配置特定的输出目标,本应输出到控制台)时,不再静默丢弃该日志,而是默认回退调用 `fmt.Println` 并在控制台打印渲染后的视图。
|
||||
|
||||
## [1.5.0] - 2026-05-10
|
||||
- **全栈基础设施对齐**:
|
||||
- 将所有内部依赖统一升级至 `v1.5.0` 语义版本。
|
||||
|
||||
## [1.3.2] - 2026-05-13
|
||||
- **功能增强: 引入摩擦消除工具 `As`**:
|
||||
- **泛型支持**: 新增全局泛型函数 `log.As[T](v T, err error) T`,仿照 `cast.As` 设计,自动记录错误并返回零值,极大简化了带 error 返回值的函数链式调用。
|
||||
|
||||
10
writer.go
10
writer.go
@ -25,7 +25,7 @@ type logPayload struct {
|
||||
// writerService manages the background writing of log entries.
|
||||
type writerService struct {
|
||||
Running atomic.Bool
|
||||
StopChan chan bool
|
||||
StopChan chan struct{}
|
||||
LogChannel chan logPayload
|
||||
Dropped atomic.Uint64
|
||||
Writers atomic.Value // []Writer
|
||||
@ -90,10 +90,13 @@ func GetDroppedLogs() uint64 {
|
||||
|
||||
// Start implements starter.Service interface.
|
||||
func (s *writerService) Start(_ context.Context, _ *Logger) error {
|
||||
s.FilesLock.Lock()
|
||||
defer s.FilesLock.Unlock()
|
||||
if !s.Running.CompareAndSwap(false, true) {
|
||||
return nil
|
||||
}
|
||||
s.StopChan = make(chan bool)
|
||||
s.LogChannel = make(chan logPayload, 10000)
|
||||
s.StopChan = make(chan struct{})
|
||||
go s.writerRunner()
|
||||
return nil
|
||||
}
|
||||
@ -163,6 +166,9 @@ func (s *writerService) processLog(payload logPayload) {
|
||||
payload.writer.Log(payload.entry, payload.buf)
|
||||
} else if payload.file != nil {
|
||||
payload.file.Write(time.Now(), payload.buf)
|
||||
} else {
|
||||
// 默认回退到控制台打印
|
||||
fmt.Println(Viewable(string(payload.buf)))
|
||||
}
|
||||
}
|
||||
|
||||
|
||||
Loading…
x
Reference in New Issue
Block a user