Advertisement
Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- package main
- import "fmt"
- import "io"
- import "log"
- import "os"
- import "strings"
- var Log *log.Logger
- type Job_Result struct {
- Job_ID int64
- // other stuff
- Log_Lines []string
- }
- // satisfies io.Writer interface
- func (jr Job_Result) Write (p []byte) (n int, err error) {
- s := strings.TrimRight(string(p),"n ")
- jr.Log_Lines= append(jr.Log_Lines,s)
- return len(s), nil
- }
- func (jr Job_Result) Dump() {
- fmt.Println("nHere is a dump of the job result log lines:")
- for n, s := range jr.Log_Lines{
- fmt.Printf("tline %d: %sn",n,s)
- }
- }
- func main() {
- // make a Job_Result
- var jr Job_Result
- jr.Job_ID = 123
- jr.Log_Lines = make([]string,0)
- // create an io.MultiWriter that points to both stdout
- // and that Job_Result var
- var writers io.Writer
- writers = io.MultiWriter(os.Stdout,jr)
- Log = log.New(writers,
- "",
- log.Ldate|log.Ltime|log.Lshortfile)
- // send some stuff to the log
- Log.Println("program starting")
- Log.Println("something happened")
- Log.Printf("last thing that happened, should be %drd linen",3)
- jr.Dump()
- }
- 2016/07/28 07:20:07 testjob.go:43: program starting
- 2016/07/28 07:20:07 testjob.go:44: something happened
- 2016/07/28 07:20:07 testjob.go:45: last thing that happened, should be 3rd line
- Here is a dump of the job result log lines:
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement