log.go 1.3 KB

12345678910111213141516171819202122232425262728293031323334353637383940414243444546474849505152535455565758596061
  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 v.AccessLog == "none" {
  28. config.AccessLogType = log.LogType_None
  29. } else if len(v.AccessLog) > 0 {
  30. config.AccessLogPath = v.AccessLog
  31. config.AccessLogType = log.LogType_File
  32. }
  33. if v.ErrorLog == "none" {
  34. config.ErrorLogType = log.LogType_None
  35. } else if len(v.ErrorLog) > 0 {
  36. config.ErrorLogPath = v.ErrorLog
  37. config.ErrorLogType = log.LogType_File
  38. }
  39. level := strings.ToLower(v.LogLevel)
  40. switch level {
  41. case "debug":
  42. config.ErrorLogLevel = clog.Severity_Debug
  43. case "info":
  44. config.ErrorLogLevel = clog.Severity_Info
  45. case "error":
  46. config.ErrorLogLevel = clog.Severity_Error
  47. case "none":
  48. config.ErrorLogType = log.LogType_None
  49. config.AccessLogType = log.LogType_None
  50. default:
  51. config.ErrorLogLevel = clog.Severity_Warning
  52. }
  53. return config
  54. }