独立 fmt Log输出重定向
/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