mirror of
https://github.com/AdguardTeam/AdGuardHome.git
synced 2024-11-22 21:15:35 +03:00
Merge: + config: add new logging settings
Close #1763 * commit '0d343abec05b87e08f8a510fad8f969c8b8f1747': * minor + config: Added in lumberjack to handle rolling logs. Added more config properties around new log feature.
This commit is contained in:
commit
5ce98bd2a4
4 changed files with 40 additions and 5 deletions
1
go.mod
1
go.mod
|
@ -20,5 +20,6 @@ require (
|
||||||
golang.org/x/crypto v0.0.0-20200403201458-baeed622b8d8
|
golang.org/x/crypto v0.0.0-20200403201458-baeed622b8d8
|
||||||
golang.org/x/net v0.0.0-20200324143707-d3edc9973b7e
|
golang.org/x/net v0.0.0-20200324143707-d3edc9973b7e
|
||||||
golang.org/x/sys v0.0.0-20200331124033-c3d80250170d
|
golang.org/x/sys v0.0.0-20200331124033-c3d80250170d
|
||||||
|
gopkg.in/natefinch/lumberjack.v2 v2.0.0
|
||||||
gopkg.in/yaml.v2 v2.2.8
|
gopkg.in/yaml.v2 v2.2.8
|
||||||
)
|
)
|
||||||
|
|
2
go.sum
2
go.sum
|
@ -159,6 +159,8 @@ gopkg.in/check.v1 v1.0.0-20180628173108-788fd7840127/go.mod h1:Co6ibVJAznAaIkqp8
|
||||||
gopkg.in/check.v1 v1.0.0-20200227125254-8fa46927fb4f h1:BLraFXnmrev5lT+xlilqcH8XK9/i0At2xKjWk4p6zsU=
|
gopkg.in/check.v1 v1.0.0-20200227125254-8fa46927fb4f h1:BLraFXnmrev5lT+xlilqcH8XK9/i0At2xKjWk4p6zsU=
|
||||||
gopkg.in/check.v1 v1.0.0-20200227125254-8fa46927fb4f/go.mod h1:Co6ibVJAznAaIkqp8huTwlJQCZ016jof/cbN4VW5Yz0=
|
gopkg.in/check.v1 v1.0.0-20200227125254-8fa46927fb4f/go.mod h1:Co6ibVJAznAaIkqp8huTwlJQCZ016jof/cbN4VW5Yz0=
|
||||||
gopkg.in/errgo.v2 v2.1.0/go.mod h1:hNsd1EY+bozCKY1Ytp96fpM3vjJbqLJn88ws8XvfDNI=
|
gopkg.in/errgo.v2 v2.1.0/go.mod h1:hNsd1EY+bozCKY1Ytp96fpM3vjJbqLJn88ws8XvfDNI=
|
||||||
|
gopkg.in/natefinch/lumberjack.v2 v2.0.0 h1:1Lc07Kr7qY4U2YPouBjpCLxpiyxIVoxqXgkXLknAOE8=
|
||||||
|
gopkg.in/natefinch/lumberjack.v2 v2.0.0/go.mod h1:l0ndWWf7gzL7RNwBG7wST/UCcT4T24xpD6X8LsfU/+k=
|
||||||
gopkg.in/yaml.v2 v2.2.2/go.mod h1:hI93XBmqTisBFMUTm0b8Fm+jr3Dg1NNxqwp+5A1VGuI=
|
gopkg.in/yaml.v2 v2.2.2/go.mod h1:hI93XBmqTisBFMUTm0b8Fm+jr3Dg1NNxqwp+5A1VGuI=
|
||||||
gopkg.in/yaml.v2 v2.2.8 h1:obN1ZagJSUGI0Ek/LBmuj4SNLPfIny3KsKFopxRdj10=
|
gopkg.in/yaml.v2 v2.2.8 h1:obN1ZagJSUGI0Ek/LBmuj4SNLPfIny3KsKFopxRdj10=
|
||||||
gopkg.in/yaml.v2 v2.2.8/go.mod h1:hI93XBmqTisBFMUTm0b8Fm+jr3Dg1NNxqwp+5A1VGuI=
|
gopkg.in/yaml.v2 v2.2.8/go.mod h1:hI93XBmqTisBFMUTm0b8Fm+jr3Dg1NNxqwp+5A1VGuI=
|
||||||
|
|
|
@ -24,6 +24,11 @@ const (
|
||||||
|
|
||||||
// logSettings
|
// logSettings
|
||||||
type logSettings struct {
|
type logSettings struct {
|
||||||
|
LogCompress bool `yaml:"log_compress"` // Compress determines if the rotated log files should be compressed using gzip (default: false)
|
||||||
|
LogLocalTime bool `yaml:"log_localtime"` // If the time used for formatting the timestamps in is the computer's local time (default: false [UTC])
|
||||||
|
LogMaxBackups int `yaml:"log_max_backups"` // Maximum number of old log files to retain (MaxAge may still cause them to get deleted)
|
||||||
|
LogMaxSize int `yaml:"log_max_size"` // Maximum size in megabytes of the log file before it gets rotated (default 100 MB)
|
||||||
|
LogMaxAge int `yaml:"log_max_age"` // MaxAge is the maximum number of days to retain old log files
|
||||||
LogFile string `yaml:"log_file"` // Path to the log file. If empty, write to stdout. If "syslog", writes to syslog
|
LogFile string `yaml:"log_file"` // Path to the log file. If empty, write to stdout. If "syslog", writes to syslog
|
||||||
Verbose bool `yaml:"verbose"` // If true, verbose logging is enabled
|
Verbose bool `yaml:"verbose"` // If true, verbose logging is enabled
|
||||||
}
|
}
|
||||||
|
@ -131,6 +136,13 @@ var config = configuration{
|
||||||
LeaseDuration: 86400,
|
LeaseDuration: 86400,
|
||||||
ICMPTimeout: 1000,
|
ICMPTimeout: 1000,
|
||||||
},
|
},
|
||||||
|
logSettings: logSettings{
|
||||||
|
LogCompress: false,
|
||||||
|
LogLocalTime: false,
|
||||||
|
LogMaxBackups: 0,
|
||||||
|
LogMaxSize: 100,
|
||||||
|
LogMaxAge: 0,
|
||||||
|
},
|
||||||
SchemaVersion: currentSchemaVersion,
|
SchemaVersion: currentSchemaVersion,
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
26
home/home.go
26
home/home.go
|
@ -22,6 +22,8 @@ import (
|
||||||
"syscall"
|
"syscall"
|
||||||
"time"
|
"time"
|
||||||
|
|
||||||
|
"gopkg.in/natefinch/lumberjack.v2"
|
||||||
|
|
||||||
"github.com/AdguardTeam/AdGuardHome/util"
|
"github.com/AdguardTeam/AdGuardHome/util"
|
||||||
|
|
||||||
"github.com/joomcode/errorx"
|
"github.com/joomcode/errorx"
|
||||||
|
@ -396,13 +398,22 @@ func configureLogger(args options) {
|
||||||
ls := getLogSettings()
|
ls := getLogSettings()
|
||||||
|
|
||||||
// command-line arguments can override config settings
|
// command-line arguments can override config settings
|
||||||
if args.verbose {
|
if args.verbose || config.Verbose {
|
||||||
ls.Verbose = true
|
ls.Verbose = true
|
||||||
}
|
}
|
||||||
if args.logFile != "" {
|
if args.logFile != "" {
|
||||||
ls.LogFile = args.logFile
|
ls.LogFile = args.logFile
|
||||||
|
} else if config.LogFile != "" {
|
||||||
|
ls.LogFile = config.LogFile
|
||||||
}
|
}
|
||||||
|
|
||||||
|
// Handle default log settings overrides
|
||||||
|
ls.LogCompress = config.LogCompress
|
||||||
|
ls.LogLocalTime = config.LogLocalTime
|
||||||
|
ls.LogMaxBackups = config.LogMaxBackups
|
||||||
|
ls.LogMaxSize = config.LogMaxSize
|
||||||
|
ls.LogMaxAge = config.LogMaxAge
|
||||||
|
|
||||||
// log.SetLevel(log.INFO) - default
|
// log.SetLevel(log.INFO) - default
|
||||||
if ls.Verbose {
|
if ls.Verbose {
|
||||||
log.SetLevel(log.DEBUG)
|
log.SetLevel(log.DEBUG)
|
||||||
|
@ -414,6 +425,7 @@ func configureLogger(args options) {
|
||||||
ls.LogFile = configSyslog
|
ls.LogFile = configSyslog
|
||||||
}
|
}
|
||||||
|
|
||||||
|
// logs are written to stdout (default)
|
||||||
if ls.LogFile == "" {
|
if ls.LogFile == "" {
|
||||||
return
|
return
|
||||||
}
|
}
|
||||||
|
@ -430,11 +442,19 @@ func configureLogger(args options) {
|
||||||
logFilePath = ls.LogFile
|
logFilePath = ls.LogFile
|
||||||
}
|
}
|
||||||
|
|
||||||
file, err := os.OpenFile(logFilePath, os.O_WRONLY|os.O_CREATE|os.O_APPEND, 0644)
|
_, err := os.OpenFile(logFilePath, os.O_WRONLY|os.O_CREATE|os.O_APPEND, 0644)
|
||||||
if err != nil {
|
if err != nil {
|
||||||
log.Fatalf("cannot create a log file: %s", err)
|
log.Fatalf("cannot create a log file: %s", err)
|
||||||
}
|
}
|
||||||
log.SetOutput(file)
|
|
||||||
|
log.SetOutput(&lumberjack.Logger{
|
||||||
|
Filename: logFilePath,
|
||||||
|
Compress: ls.LogCompress, // disabled by default
|
||||||
|
LocalTime: ls.LogLocalTime,
|
||||||
|
MaxBackups: ls.LogMaxBackups,
|
||||||
|
MaxSize: ls.LogMaxSize, // megabytes
|
||||||
|
MaxAge: ls.LogMaxAge, //days
|
||||||
|
})
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
Loading…
Reference in a new issue