From a698a8135d2b43c6eb25b7a0107ca22664870523 Mon Sep 17 00:00:00 2001 From: Ge Song Date: Fri, 16 Jun 2023 14:29:39 +0800 Subject: [PATCH] =?UTF-8?q?log/=E5=88=A0=E9=99=A4logger.Logger.SetExit?= =?UTF-8?q?=E6=96=B9=E6=B3=95;?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- log/README.md | 3 +-- log/logsdk/logger.go | 22 +++------------------- 2 files changed, 4 insertions(+), 21 deletions(-) diff --git a/log/README.md b/log/README.md index 3016c8c..41395b8 100644 --- a/log/README.md +++ b/log/README.md @@ -54,8 +54,7 @@ log.Logger() - `SetReportStack` 设置生成调用栈; - `SetReportStackLevel` 当日志等级小于设定值时强制生成调用栈; - `Reset` 把 Logger 恢复到初始状态; -- `AddBeforeExit` 新增调用 `Logger.Exit` 时优先执行的函数, 先增加的后执行; -- `SetExit` 设置 `Logger` 的退出函数(`Logger.Exit`), 当日志等级为 `LevelFatal` 时调用这个函数; +- `AddBeforeExit` 增加 Exit 在调用 [os.Exit] 前执行的函数, 先增加的后执行; ### 日志生成 diff --git a/log/logsdk/logger.go b/log/logsdk/logger.go index e147a73..4c54789 100644 --- a/log/logsdk/logger.go +++ b/log/logsdk/logger.go @@ -20,7 +20,6 @@ type entry = Entry // Logger 中保存了日志所需的全局配置, // 使用 Logger 处理日志. type Logger struct { - exit func(code int) // protected by lock beforeExitFns []func() // protected by lock levelProcessors levelProcessors // protected by lock entry @@ -99,7 +98,6 @@ func (logger *Logger) SetReportStackLevel(level Level) { // Reset 把 Logger 重置到初始状态 func (logger *Logger) Reset() { logger.lock.Lock() - logger.exit = nil logger.beforeExitFns = nil logger.levelProcessors = levelProcessors{} logger.lock.Unlock() @@ -125,27 +123,13 @@ func (logger *Logger) BeforeExit() { }) } -// Exit 执行 BeforeExit 后退出程序, 执行的退出函数可以通过 SetExit 指定, -// 当没有通过 SetExit 指定退出函数时调用 [os.Exit]. +// Exit 执行 BeforeExit 后调用 [os.Exit]退出程序. func (logger *Logger) Exit(code int) { logger.BeforeExit() - logger.lock.RLock() - exit := logger.exit - logger.lock.RUnlock() - if exit == nil { - exit = os.Exit - } - exit(code) -} - -// SetExit 指定退出程序时执行的函数 -func (logger *Logger) SetExit(fn func(code int)) { - logger.lock.Lock() - logger.exit = fn - logger.lock.Unlock() + os.Exit(code) } -// AddBeforeExit 增加 Exit 在调用 SetExit 指定的函数前执行的函数, +// AddBeforeExit 增加 Exit 在调用 [os.Exit] 前执行的函数, // 先增加的后执行. func (logger *Logger) AddBeforeExit(fn ...func()) { logger.lock.Lock()