log.go 1.2 KB

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