Example #1
0
// 将stdout, stderr重定向到指定文件
func redirectStdout(logpath string) (err error) {
	// stdout
	oldout := os.Stdout
	if os.Stdout, err = os.OpenFile(filepath.Join(logpath, "stdout.log"), os.O_WRONLY|os.O_CREATE|os.O_APPEND, os.ModePerm); err != nil {
		return
	}
	stdlog.SetOutput(io.MultiWriter(oldout, os.Stdout))

	// stderr
	if os.Stderr, err = os.OpenFile(filepath.Join(logpath, "stderr.log"), os.O_WRONLY|os.O_CREATE|os.O_APPEND, os.ModePerm); err != nil {
		return
	}
	return
}
Example #2
0
// 将Stdout, Stderr重定向到指定文件
func redirectLogOutput(directory string) {
	oldout := os.Stdout
	var err error
	os.Stdout, err = os.OpenFile(directory+"stdout.log", os.O_WRONLY|os.O_CREATE|os.O_APPEND, os.ModePerm)
	if err != nil {
		panic(err)
	}
	// 同时输出到屏幕和文件
	stdlog.SetOutput(io.MultiWriter(oldout, os.Stdout))

	os.Stderr, err = os.OpenFile(directory+"stderr.log", os.O_WRONLY|os.O_CREATE|os.O_APPEND, os.ModePerm)
	if err != nil {
		panic(err)
	}
}