Advertisement
Guest User

Untitled

a guest
Jul 28th, 2016
49
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
text 1.34 KB | None | 0 0
  1. package main
  2.  
  3. import "fmt"
  4. import "io"
  5. import "log"
  6. import "os"
  7. import "strings"
  8.  
  9. var Log *log.Logger
  10.  
  11. type Job_Result struct {
  12. Job_ID int64
  13. // other stuff
  14. Log_Lines []string
  15. }
  16.  
  17. // satisfies io.Writer interface
  18. func (jr Job_Result) Write (p []byte) (n int, err error) {
  19. s := strings.TrimRight(string(p),"n ")
  20. jr.Log_Lines= append(jr.Log_Lines,s)
  21. return len(s), nil
  22. }
  23.  
  24. func (jr Job_Result) Dump() {
  25. fmt.Println("nHere is a dump of the job result log lines:")
  26. for n, s := range jr.Log_Lines{
  27. fmt.Printf("tline %d: %sn",n,s)
  28. }
  29. }
  30.  
  31. func main() {
  32.  
  33. // make a Job_Result
  34.  
  35. var jr Job_Result
  36. jr.Job_ID = 123
  37. jr.Log_Lines = make([]string,0)
  38.  
  39. // create an io.MultiWriter that points to both stdout
  40. // and that Job_Result var
  41.  
  42. var writers io.Writer
  43. writers = io.MultiWriter(os.Stdout,jr)
  44.  
  45. Log = log.New(writers,
  46. "",
  47. log.Ldate|log.Ltime|log.Lshortfile)
  48.  
  49. // send some stuff to the log
  50.  
  51. Log.Println("program starting")
  52. Log.Println("something happened")
  53. Log.Printf("last thing that happened, should be %drd linen",3)
  54.  
  55. jr.Dump()
  56.  
  57. }
  58.  
  59. 2016/07/28 07:20:07 testjob.go:43: program starting
  60. 2016/07/28 07:20:07 testjob.go:44: something happened
  61. 2016/07/28 07:20:07 testjob.go:45: last thing that happened, should be 3rd line
  62.  
  63. Here is a dump of the job result log lines:
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement