gpt4 book ai didi

戈朗。帮助优化一段代码

转载 作者:数据小太阳 更新时间:2023-10-29 03:14:52 29 4
gpt4 key购买 nike

我有密码

if config.Process.TraceLog != "" {
f, err := os.OpenFile(config.Process.TraceLog, os.O_RDWR|os.O_CREATE|os.O_APPEND, 0666)

if err != nil {
fmt.Println("error opening log file: %v", err)
os.Exit(1)
}

Trace.SetOutput(f)
}

if config.Process.InfoLog != "" {
f, err := os.OpenFile(config.Process.InfoLog, os.O_RDWR|os.O_CREATE|os.O_APPEND, 0666)

if err != nil {
fmt.Println("error opening log file: %v", err)
os.Exit(1)
}

Info.SetOutput(f)
}
if config.Process.WarningLog != "" {
f, err := os.OpenFile(config.Process.WarningLog, os.O_RDWR|os.O_CREATE|os.O_APPEND, 0666)

if err != nil {
fmt.Println("error opening log file: %v", err)
os.Exit(1)
}
Warning.SetOutput(f)
}

if config.Process.ErrorLog != "" {
f, err := os.OpenFile(config.Process.ErrorLog, os.O_RDWR|os.O_CREATE|os.O_APPEND, 0666)

if err != nil {
fmt.Println("error opening log file: %v", err)
os.Exit(1)
}

Error.SetOutput(f)
}
  1. 缩短它的好方法是什么?我不想重复相同的非常相似的 block 4 次。

  2. 如何循环?我尝试用文件名和记录器对象创建 map ,但不知道如何正确发布引用

最佳答案

我终于做到了

m := map[string]*log.Logger{
config.Process.TraceLog: Trace,
config.Process.InfoLog: Info,
config.Process.WarningLog: Warning,
config.Process.ErrorLog: Error,
}
for filepath, l := range m {
if filepath != "" {
f, err := os.OpenFile(filepath, os.O_RDWR|os.O_CREATE|os.O_APPEND, 0666)

if err != nil {
fmt.Println("error opening log file: %v", err)
os.Exit(1)
}
l.SetOutput(f)
}
}

关于戈朗。帮助优化一段代码,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/39179083/

29 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com