syslog.go 2.0 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596
  1. //+build !windows,!nacl,!plan9
  2. package log
  3. //
  4. // import (
  5. // "encoding/json"
  6. // "errors"
  7. // "log/syslog"
  8. // )
  9. //
  10. // type SyslogWriter struct {
  11. // syslog *syslog.Writer
  12. // Network string `json:"network"`
  13. // Address string `json:"address"`
  14. // Facility string `json:"facility"`
  15. // Tag string `json:"tag"`
  16. // }
  17. //
  18. // func NewSyslog() LoggerInterface {
  19. // return new(SyslogWriter)
  20. // }
  21. //
  22. // func (sw *SyslogWriter) Init(config string) error {
  23. // if err := json.Unmarshal([]byte(config), sw); err != nil {
  24. // return err
  25. // }
  26. //
  27. // prio, err := parseFacility(sw.Facility)
  28. // if err != nil {
  29. // return err
  30. // }
  31. //
  32. // w, err := syslog.Dial(sw.Network, sw.Address, prio, sw.Tag)
  33. // if err != nil {
  34. // return err
  35. // }
  36. //
  37. // sw.syslog = w
  38. // return nil
  39. // }
  40. //
  41. // func (sw *SyslogWriter) WriteMsg(msg string, skip int, level LogLevel) error {
  42. // var err error
  43. //
  44. // switch level {
  45. // case TRACE, DEBUG:
  46. // err = sw.syslog.Debug(msg)
  47. // case INFO:
  48. // err = sw.syslog.Info(msg)
  49. // case WARN:
  50. // err = sw.syslog.Warning(msg)
  51. // case ERROR:
  52. // err = sw.syslog.Err(msg)
  53. // case CRITICAL:
  54. // err = sw.syslog.Crit(msg)
  55. // case FATAL:
  56. // err = sw.syslog.Alert(msg)
  57. // default:
  58. // err = errors.New("invalid syslog level")
  59. // }
  60. //
  61. // return err
  62. // }
  63. //
  64. // func (sw *SyslogWriter) Destroy() {
  65. // sw.syslog.Close()
  66. // }
  67. //
  68. // func (sw *SyslogWriter) Flush() {}
  69. //
  70. // var facilities = map[string]syslog.Priority{
  71. // "user": syslog.LOG_USER,
  72. // "daemon": syslog.LOG_DAEMON,
  73. // "local0": syslog.LOG_LOCAL0,
  74. // "local1": syslog.LOG_LOCAL1,
  75. // "local2": syslog.LOG_LOCAL2,
  76. // "local3": syslog.LOG_LOCAL3,
  77. // "local4": syslog.LOG_LOCAL4,
  78. // "local5": syslog.LOG_LOCAL5,
  79. // "local6": syslog.LOG_LOCAL6,
  80. // "local7": syslog.LOG_LOCAL7,
  81. // }
  82. //
  83. // func parseFacility(facility string) (syslog.Priority, error) {
  84. // prio, ok := facilities[facility]
  85. // if !ok {
  86. // return syslog.LOG_LOCAL0, errors.New("invalid syslog facility")
  87. // }
  88. //
  89. // return prio, nil
  90. // }
  91. //
  92. // func init() {
  93. // Register("syslog", NewSyslog)
  94. // }