You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

Golang中写入stderr的简便方法探讨

在Golang中更简便地写入stderr的方法

你可以用几种更直观的方式替代当前的写法:

1. 利用log包的默认输出

log包的Println、Printf等方法默认就是将内容写入os.Stderr,不用手动指定输出流,代码更简洁:

import "log"

log.Println("This is an error message")

默认输出会带时间戳前缀,如果不需要这个前缀,可以自定义一个不带前缀的logger:

import (
    "log"
    "os"
)

var errLog = log.New(os.Stderr, "", 0)

errLog.Println("This is an error message")

2. 封装自己的eprintln函数

如果想完全模仿fmt.Println的使用体验,自己封装一个极简函数即可:

import (
    "fmt"
    "os"
)

// eprintln 像fmt.Println一样写入stderr
func eprintln(a ...interface{}) {
    // 大多数场景下写入stderr出错概率极低,可忽略返回值
    _, _ = fmt.Fprintln(os.Stderr, a...)
}

// 调用方式和fmt.Println完全一致
eprintln("This is an error message")

3. 简化原生写法

如果不想额外封装或引入log包,直接忽略fmt.Fprintln的返回值即可(非严格场景下完全可行):

import (
    "fmt"
    "os"
)

fmt.Fprintln(os.Stderr, "This is an error message")

内容的提问来源于stack exchange,提问作者Alexander Mills

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.07.04 17:45:56