为什么不使用锁同步日志包

我正在阅读日志源代码,我在这里很困惑:


// SetOutput sets the output destination for the standard logger.

func SetOutput(w io.Writer) {

    std.mu.Lock()

    defer std.mu.Unlock()

    std.out = w

}


// Flags returns the output flags for the standard logger.

func Flags() int {

    return std.Flags()

}


// SetFlags sets the output flags for the standard logger.

func SetFlags(flag int) {

    std.SetFlags(flag)

}

为什么SetOutPut用mu锁而SetFlags不用mu锁?


红颜莎娜
浏览 158回答 1
1回答

慕码人8056858

SetOutput正在改变std默认记录器的内部状态。log.SetFlags呼吁SetFlags上std,已经锁定记录器本身。
打开App,查看更多内容
随时随地看视频慕课网APP

相关分类

Go