Skip to content

bug反馈 #31

Open
Open
@Xihuyouyu

Description

@Xihuyouyu

bug1:
代码位置: /sdk/pkg/logger/log.go :49
说明: plugins/logger/zap包里对 output的赋值是取自上下文Context,当前代码的logger.WithOutput(output)无效,无法正确设置日志的输出,应该使用 zap包的zap.WithOutput.

bug2:
代码位置: /debug/writer/file.go :104
说明: 在日志库使用zaplog(/plugins/logger/zap/)的情况下有数据被覆盖的风险。代码/plugins/logger/zap/zap.go :58 使用了 zapcore.NewConsoleEncoder(), zap在写入日志数据的时候使用了 sync.pool,代码参见 go.uber.org/zap/zapcore/console_encoder.go :67, 在并发情况下,FileWriter.Write()将data1 []byte写入管道 FileWriter.input, 在数据被真正写入 FileWriter.file.Write()前, zap从对象池重新取出buffer并赋值, 生成data2 []byte,,如果两次取出的buffer地址相同,那么管道内data1的数据会被data2覆盖,导致日志的输出异常。

Metadata

Metadata

Assignees

No one assigned

    Labels

    No labels
    No labels

    Type

    No type

    Projects

    No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions