logger.go 1.3 KB

1234567891011121314151617181920212223242526272829303132333435363738394041424344454647484950515253545556575859606162636465
  1. package ngrok
  2. import (
  3. log "code.google.com/p/log4go"
  4. "fmt"
  5. )
  6. var Log log.Logger
  7. func init() {
  8. Log = make(log.Logger)
  9. // Log.AddFilter("log", log.DEBUG, log.NewFileLogWriter("ngrok.log", true))
  10. }
  11. func LogToConsole() {
  12. Log.AddFilter("log", log.DEBUG, log.NewConsoleLogWriter())
  13. }
  14. func LogToFile() {
  15. Log.AddFilter("log", log.DEBUG, log.NewFileLogWriter("ngrok.log", true))
  16. }
  17. type Logger interface {
  18. AddLogPrefix(string)
  19. Debug(string, ...interface{})
  20. Info(string, ...interface{})
  21. Warn(string, ...interface{}) error
  22. Error(string, ...interface{}) error
  23. }
  24. type PrefixLogger struct {
  25. prefix string
  26. }
  27. func NewPrefixLogger() Logger {
  28. return &PrefixLogger{}
  29. }
  30. func (pl *PrefixLogger) pfx(fmtstr string) interface{} {
  31. return fmt.Sprintf("%s %s", pl.prefix, fmtstr)
  32. }
  33. func (pl *PrefixLogger) Debug(arg0 string, args ...interface{}) {
  34. Log.Debug(pl.pfx(arg0), args...)
  35. }
  36. func (pl *PrefixLogger) Info(arg0 string, args ...interface{}) {
  37. Log.Info(pl.pfx(arg0), args...)
  38. }
  39. func (pl *PrefixLogger) Warn(arg0 string, args ...interface{}) error {
  40. return Log.Warn(pl.pfx(arg0), args...)
  41. }
  42. func (pl *PrefixLogger) Error(arg0 string, args ...interface{}) error {
  43. return Log.Error(pl.pfx(arg0), args...)
  44. }
  45. func (pl *PrefixLogger) AddLogPrefix(prefix string) {
  46. if len(pl.prefix) > 0 {
  47. pl.prefix += " "
  48. }
  49. pl.prefix += "[" + prefix + "]"
  50. }