/dev/stdout/dev/stderr
//代码摘自:golang封装包 -> /lib/golang/src/os
var (
Stdin = NewFile(uintptr(syscall.Stdin), "/dev/stdin")
Stdout = NewFile(uintptr(syscall.Stdout), "/dev/stdout")
Stderr = NewFile(uintptr(syscall.Stderr), "/dev/stderr")
)
改变 os.Stdout 和 os.Stderr 值将输出重定向。
下面代码将fmt输出重定向到/home/fmt.log文件:
f, _ := os.OpenFile("/home/fmt.log", os.O_WRONLY|os.O_CREATE|os.O_SYNC|os.O_APPEND,0755)
os.Stdout = f
os.Stderr = f
golang 第三方包:logrusLog输出重定向
logrus Log 默认输出到 os.Stderr
func New() *Logger {
return &Logger{
Out: os.Stderr,
Formatter: new(TextFormatter),
Hooks: make(LevelHooks),
Level: InfoLevel,
}
}
SetOutput
import (
"github.com/Sirupsen/logrus"
)
f, _ := os.OpenFile("/home/fmt.log", os.O_WRONLY|os.O_CREATE|os.O_SYNC|os.O_APPEND,0755)
logrus.SetOutput(f)
子进程输出从定向
>>>os/exec
下面代码将fmt输出重定向到/home/exec.log文件;
cmd := exec.Command(binary_name, args...)
f, _ := os.OpenFile("/home/exec.log", os.O_WRONLY|os.O_CREATE|os.O_SYNC,0755)
cmd.Stdout = f
cmd.Stderr = f