本文整理匯總了Golang中github.com/cloudfoundry/bosh-utils/system.Command.Stderr方法的典型用法代碼示例。如果您正苦於以下問題:Golang Command.Stderr方法的具體用法?Golang Command.Stderr怎麽用?Golang Command.Stderr使用的例子?那麽, 這裏精選的方法代碼示例或許可以為您提供幫助。您也可以進一步了解該方法所在類github.com/cloudfoundry/bosh-utils/system.Command
的用法示例。
在下文中一共展示了Command.Stderr方法的1個代碼示例,這些例子默認根據受歡迎程度排序。您可以為喜歡或者感覺有用的代碼點讚,您的評價將有助於係統推薦出更棒的Golang代碼示例。
示例1: RunCommand
func (f FileLoggingCmdRunner) RunCommand(jobName string, taskName string, cmd boshsys.Command) (*CmdResult, error) {
logsDir := path.Join(f.baseDir, jobName)
err := f.fs.RemoveAll(logsDir)
if err != nil {
return nil, bosherr.WrapErrorf(err, "Removing log dir for job %s", jobName)
}
err = f.fs.MkdirAll(logsDir, os.FileMode(0750))
if err != nil {
return nil, bosherr.WrapErrorf(err, "Creating log dir for job %s", jobName)
}
stdoutPath := path.Join(logsDir, fmt.Sprintf("%s.stdout.log", taskName))
stderrPath := path.Join(logsDir, fmt.Sprintf("%s.stderr.log", taskName))
stdoutFile, err := f.fs.OpenFile(stdoutPath, fileOpenFlag, fileOpenPerm)
if err != nil {
return nil, bosherr.WrapErrorf(err, "Opening stdout for task %s", taskName)
}
defer func() {
_ = stdoutFile.Close()
}()
cmd.Stdout = stdoutFile
stderrFile, err := f.fs.OpenFile(stderrPath, fileOpenFlag, fileOpenPerm)
if err != nil {
return nil, bosherr.WrapErrorf(err, "Opening stderr for task %s", taskName)
}
defer func() {
_ = stderrFile.Close()
}()
cmd.Stderr = stderrFile
// Stdout/stderr are redirected to the files
_, _, exitStatus, runErr := f.cmdRunner.RunComplexCommand(cmd)
stdout, isStdoutTruncated, err := f.getTruncatedOutput(stdoutFile, f.truncateLength)
if err != nil {
return nil, bosherr.WrapErrorf(err, "Truncating stdout for task %s", taskName)
}
stderr, isStderrTruncated, err := f.getTruncatedOutput(stderrFile, f.truncateLength)
if err != nil {
return nil, bosherr.WrapErrorf(err, "Truncating stderr for task %s", taskName)
}
result := &CmdResult{
IsStdoutTruncated: isStdoutTruncated,
IsStderrTruncated: isStderrTruncated,
Stdout: stdout,
Stderr: stderr,
ExitStatus: exitStatus,
}
if runErr != nil {
return nil, FileLoggingExecErr{result}
}
return result, nil
}