forked from kubewharf/katalyst-core
-
Notifications
You must be signed in to change notification settings - Fork 0
Expand file tree
/
Copy pathlog.go
More file actions
61 lines (51 loc) · 2.14 KB
/
log.go
File metadata and controls
61 lines (51 loc) · 2.14 KB
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
61
/*
Copyright 2022 The Katalyst Authors.
Licensed under the Apache License, Version 2.0 (the "License");
you may not use this file except in compliance with the License.
You may obtain a copy of the License at
http://www.apache.org/licenses/LICENSE-2.0
Unless required by applicable law or agreed to in writing, software
distributed under the License is distributed on an "AS IS" BASIS,
WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
See the License for the specific language governing permissions and
limitations under the License.
*/
package options
import (
"github.com/spf13/pflag"
"github.com/kubewharf/katalyst-core/pkg/config/generic"
"github.com/kubewharf/katalyst-core/pkg/util/general"
)
type LogsOptions struct {
LogPackageLevel general.LoggingPKG
LogFileMaxSizeInMB uint64
CustomLogDir string
LogBufferSize int
LogFileMaxAge int
LogFileMaxBackups int
}
func NewLogsOptions() *LogsOptions {
return &LogsOptions{
LogPackageLevel: general.LoggingPKGFull,
LogFileMaxSizeInMB: 1800,
}
}
// AddFlags adds flags to the specified FlagSet.
func (o *LogsOptions) AddFlags(fs *pflag.FlagSet) {
fs.StringVar(&o.CustomLogDir, "custom_log_dir", o.CustomLogDir, "directory to store logs for custom logger")
fs.Var(&o.LogPackageLevel, "logs-package-level", "the default package level for logging")
fs.Uint64Var(&o.LogFileMaxSizeInMB, "log-file-max-size", o.LogFileMaxSizeInMB, "Max size of klog file in MB.")
fs.IntVar(&o.LogBufferSize, "log-buffer-size", o.LogBufferSize, "size of the ring buffer to store async logs")
fs.IntVar(&o.LogFileMaxAge, "log-file-max-age", o.LogFileMaxAge, "max age of klog log file in days")
fs.IntVar(&o.LogFileMaxBackups, "log-file-max-backups", o.LogFileMaxBackups, "max number of klog log file backups")
}
func (o *LogsOptions) ApplyTo(c *generic.LogConfiguration) error {
general.SetDefaultLoggingPackage(o.LogPackageLevel)
general.SetLogFileMaxSize(o.LogFileMaxSizeInMB)
c.CustomLogDir = o.CustomLogDir
c.LogBufferSize = o.LogBufferSize
c.LogFileMaxSize = int(o.LogFileMaxSizeInMB)
c.LogFileMaxAge = o.LogFileMaxAge
c.LogFileMaxBackups = o.LogFileMaxBackups
return nil
}