Hunter0x7c7
2022-08-11 b8230139fb40edea387617b6accd8371e37eda58
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
package log
 
import (
    "strings"
 
    "github.com/v2fly/v2ray-core/v5/app/log"
    clog "github.com/v2fly/v2ray-core/v5/common/log"
)
 
func DefaultLogConfig() *log.Config {
    return &log.Config{
        Access: &log.LogSpecification{Type: log.LogType_None},
        Error:  &log.LogSpecification{Type: log.LogType_Console, Level: clog.Severity_Warning},
    }
}
 
type LogConfig struct { // nolint: revive
    AccessLog string `json:"access"`
    ErrorLog  string `json:"error"`
    LogLevel  string `json:"loglevel"`
}
 
func (v *LogConfig) Build() *log.Config {
    if v == nil {
        return nil
    }
    config := &log.Config{
        Access: &log.LogSpecification{Type: log.LogType_Console},
        Error:  &log.LogSpecification{Type: log.LogType_Console},
    }
 
    if v.AccessLog == "none" {
        config.Access.Type = log.LogType_None
    } else if len(v.AccessLog) > 0 {
        config.Access.Path = v.AccessLog
        config.Access.Type = log.LogType_File
    }
    if v.ErrorLog == "none" {
        config.Error.Type = log.LogType_None
    } else if len(v.ErrorLog) > 0 {
        config.Error.Path = v.ErrorLog
        config.Error.Type = log.LogType_File
    }
 
    level := strings.ToLower(v.LogLevel)
    switch level {
    case "debug":
        config.Error.Level = clog.Severity_Debug
    case "info":
        config.Error.Level = clog.Severity_Info
    case "error":
        config.Error.Level = clog.Severity_Error
    case "none":
        config.Error.Type = log.LogType_None
        config.Error.Type = log.LogType_None
    default:
        config.Error.Level = clog.Severity_Warning
    }
    return config
}