log.go 541 B

1234567891011121314151617181920212223242526272829303132333435363738394041424344
  1. package config
  2. import (
  3. "encoding/csv"
  4. "log"
  5. "os"
  6. )
  7. type (
  8. SpiderLog struct {
  9. F *os.File
  10. LogFile *csv.Writer
  11. }
  12. )
  13. var (
  14. Sl *SpiderLog
  15. )
  16. // NewSpiderLog
  17. func NewSpiderLog(sf string) (*SpiderLog, error) {
  18. fo, err := os.Create(sf)
  19. if err != nil {
  20. return nil, err
  21. }
  22. return &SpiderLog{
  23. fo,
  24. csv.NewWriter(fo),
  25. }, nil
  26. }
  27. // Close
  28. func (sl *SpiderLog) Close() {
  29. sl.LogFile.Flush()
  30. sl.F.Close()
  31. }
  32. // Log
  33. func (sl *SpiderLog) Log(arg ...string) {
  34. err := sl.LogFile.Write(arg)
  35. if err != nil {
  36. log.Println(err)
  37. }
  38. }