log.go 991 B

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748
  1. package conf
  2. import (
  3. "strings"
  4. "v2ray.com/core/common/log"
  5. )
  6. type LogConfig struct {
  7. AccessLog string `json:"access"`
  8. ErrorLog string `json:"error"`
  9. LogLevel string `json:"loglevel"`
  10. }
  11. func (v *LogConfig) Build() *log.Config {
  12. if v == nil {
  13. return nil
  14. }
  15. config := &log.Config{
  16. ErrorLogType: log.LogType_Console,
  17. AccessLogType: log.LogType_Console,
  18. }
  19. if len(v.AccessLog) > 0 {
  20. config.AccessLogPath = v.AccessLog
  21. config.AccessLogType = log.LogType_File
  22. }
  23. if len(v.ErrorLog) > 0 {
  24. config.ErrorLogPath = v.ErrorLog
  25. config.ErrorLogType = log.LogType_File
  26. }
  27. level := strings.ToLower(v.LogLevel)
  28. switch level {
  29. case "debug":
  30. config.ErrorLogLevel = log.LogLevel_Debug
  31. case "info":
  32. config.ErrorLogLevel = log.LogLevel_Info
  33. case "error":
  34. config.ErrorLogLevel = log.LogLevel_Error
  35. case "none":
  36. config.ErrorLogType = log.LogType_None
  37. config.AccessLogType = log.LogType_None
  38. default:
  39. config.ErrorLogLevel = log.LogLevel_Warning
  40. }
  41. return config
  42. }