mirror of https://github.com/XTLS/Xray-core
				
				
				
			
		
			
				
	
	
		
			66 lines
		
	
	
		
			1.5 KiB
		
	
	
	
		
			Go
		
	
	
			
		
		
	
	
			66 lines
		
	
	
		
			1.5 KiB
		
	
	
	
		
			Go
		
	
	
package conf
 | 
						|
 | 
						|
import (
 | 
						|
	"strings"
 | 
						|
 | 
						|
	"github.com/xtls/xray-core/app/log"
 | 
						|
	clog "github.com/xtls/xray-core/common/log"
 | 
						|
)
 | 
						|
 | 
						|
func DefaultLogConfig() *log.Config {
 | 
						|
	return &log.Config{
 | 
						|
		AccessLogType: log.LogType_None,
 | 
						|
		ErrorLogType:  log.LogType_Console,
 | 
						|
		ErrorLogLevel: clog.Severity_Warning,
 | 
						|
	}
 | 
						|
}
 | 
						|
 | 
						|
type LogConfig struct {
 | 
						|
	AccessLog   string `json:"access"`
 | 
						|
	ErrorLog    string `json:"error"`
 | 
						|
	LogLevel    string `json:"loglevel"`
 | 
						|
	DNSLog      bool   `json:"dnsLog"`
 | 
						|
	MaskAddress string `json:"maskAddress"`
 | 
						|
}
 | 
						|
 | 
						|
func (v *LogConfig) Build() *log.Config {
 | 
						|
	if v == nil {
 | 
						|
		return nil
 | 
						|
	}
 | 
						|
	config := &log.Config{
 | 
						|
		ErrorLogType:  log.LogType_Console,
 | 
						|
		AccessLogType: log.LogType_Console,
 | 
						|
		EnableDnsLog:  v.DNSLog,
 | 
						|
	}
 | 
						|
 | 
						|
	if v.AccessLog == "none" {
 | 
						|
		config.AccessLogType = log.LogType_None
 | 
						|
	} else if len(v.AccessLog) > 0 {
 | 
						|
		config.AccessLogPath = v.AccessLog
 | 
						|
		config.AccessLogType = log.LogType_File
 | 
						|
	}
 | 
						|
	if v.ErrorLog == "none" {
 | 
						|
		config.ErrorLogType = log.LogType_None
 | 
						|
	} else if len(v.ErrorLog) > 0 {
 | 
						|
		config.ErrorLogPath = v.ErrorLog
 | 
						|
		config.ErrorLogType = log.LogType_File
 | 
						|
	}
 | 
						|
 | 
						|
	level := strings.ToLower(v.LogLevel)
 | 
						|
	switch level {
 | 
						|
	case "debug":
 | 
						|
		config.ErrorLogLevel = clog.Severity_Debug
 | 
						|
	case "info":
 | 
						|
		config.ErrorLogLevel = clog.Severity_Info
 | 
						|
	case "error":
 | 
						|
		config.ErrorLogLevel = clog.Severity_Error
 | 
						|
	case "none":
 | 
						|
		config.ErrorLogType = log.LogType_None
 | 
						|
		config.AccessLogType = log.LogType_None
 | 
						|
	default:
 | 
						|
		config.ErrorLogLevel = clog.Severity_Warning
 | 
						|
	}
 | 
						|
	config.MaskAddress = v.MaskAddress
 | 
						|
	return config
 | 
						|
}
 |