Skip to content

Commit a281fe1

Browse files
committed
change log
1 parent bbfbe82 commit a281fe1

13 files changed

+68
-41
lines changed

.gitignore

+3
Original file line numberDiff line numberDiff line change
@@ -25,3 +25,6 @@ vendor/
2525

2626
# Dependency directories
2727
Godeps/
28+
29+
# Test output
30+
convert/test_output/

cmd/root.go

+1-1
Original file line numberDiff line numberDiff line change
@@ -31,7 +31,7 @@ func init() {
3131
rootCmd.PersistentPreRun = func(cmd *cobra.Command, args []string) {
3232
verbose, _ := cmd.Flags().GetBool("verbose")
3333
if verbose {
34-
log.SetLogLevel(zapcore.DebugLevel)
34+
log.L().SetLogLevel(zapcore.DebugLevel)
3535
}
3636
}
3737
rootCmd.Flags().BoolP("toggle", "t", false, "Help message for toggle")

conf/config-sample.yaml

+1
Original file line numberDiff line numberDiff line change
@@ -18,6 +18,7 @@ convert:
1818
type: "domain"
1919
- name: "proxy.yaml"
2020
type: "domain"
21+
enableRegex: True
2122

2223
# run background to watch the file change
2324
service:

conf/config.go

+7-5
Original file line numberDiff line numberDiff line change
@@ -16,6 +16,7 @@ var Convert struct {
1616
Source string
1717
Target string
1818
ProcessFiles []*File
19+
EnableRegex bool
1920
}
2021

2122
var Service struct {
@@ -31,15 +32,15 @@ var Log struct {
3132
func Init(file string) {
3233
if _, err := os.Stat(file); err != nil {
3334
if !os.IsNotExist(err) {
34-
log.Logger.Sugar().With(err).Errorf("get stat of %s failed", file)
35+
log.L().Sugar().With(err).Errorf("get stat of %s failed", file)
3536
}
36-
log.Logger.Sugar().Infof("config not existed, creating at %s", file)
37+
log.L().Sugar().Infof("config not existed, creating at %s", file)
3738
created, err := os.Create(file)
3839
if err != nil {
39-
log.Logger.Sugar().With(err).Errorf("create config at %s failed", file)
40+
log.L().Sugar().With(err).Errorf("create config at %s failed", file)
4041
}
4142
if _, err := created.Write(configSample); err != nil {
42-
log.Logger.Sugar().With(err).Errorf("write config at %s failed", file)
43+
log.L().Sugar().With(err).Errorf("write config at %s failed", file)
4344
}
4445
}
4546

@@ -48,7 +49,7 @@ func Init(file string) {
4849

4950
update()
5051
if err != nil {
51-
log.Logger.Sugar().With(err).Errorf("read config from %s failed", file)
52+
log.L().Sugar().With(err).Errorf("read config from %s failed", file)
5253
}
5354
}
5455

@@ -63,6 +64,7 @@ func update() {
6364
Type: f["type"].(string),
6465
})
6566
}
67+
Convert.EnableRegex = viper.GetBool("convert.enable_regex")
6668

6769
Service.Enable = viper.GetBool("service.enable")
6870
Service.Delay = viper.GetInt("service.delay")

convert/test_case/classical.txt

+1
Original file line numberDiff line numberDiff line change
@@ -1,3 +1,4 @@
1+
# source mark
12
DOMAIN,ai.google.dev
23
DOMAIN-SUFFIX,proactivebackend-pa.googleapis.com
34
DOMAIN-KEYWORD,openai

convert/test_case/classical.yaml

+2
Original file line numberDiff line numberDiff line change
@@ -1,3 +1,5 @@
1+
# source mark
2+
13
payload:
24
- DOMAIN,ai.google.dev
35
- DOMAIN-SUFFIX,proactivebackend-pa.googleapis.com

convert/test_case/domain.txt

+1
Original file line numberDiff line numberDiff line change
@@ -1,3 +1,4 @@
1+
# source mark
12
265.com
23
+.google.com
34
git.*.com

convert/test_case/domain.yaml

+2
Original file line numberDiff line numberDiff line change
@@ -1,3 +1,5 @@
1+
# source mark
2+
13
payload:
24
- '265.com'
35
- '+.google.com'

convert/test_output/classical.txt

-4
This file was deleted.

daemon/binary.go

+11-11
Original file line numberDiff line numberDiff line change
@@ -17,60 +17,60 @@ const installed = "/usr/sbin/provider2domainset"
1717
func Install() {
1818
file, err := exec.LookPath(os.Args[0])
1919
if err != nil && !errors.Is(err, exec.ErrDot) {
20-
log.Logger.Error("fetch current binary path failed", zap.Error(err))
20+
log.L().Error("fetch current binary path failed", zap.Error(err))
2121
return
2222
}
2323

2424
absFile, err := filepath.Abs(file)
2525
if err != nil {
26-
log.Logger.Error("The absPath failed", zap.Error(err))
26+
log.L().Error("The absPath failed", zap.Error(err))
2727
return
2828
}
29-
log.Logger.Sugar().Infof("current binary: %v", absFile)
29+
log.L().Sugar().Infof("current binary: %v", absFile)
3030

3131
originFp, err := os.Open(absFile)
3232
if err != nil {
33-
log.Logger.Error("open current binary failed", zap.Error(err))
33+
log.L().Error("open current binary failed", zap.Error(err))
3434
return
3535
}
3636
defer originFp.Close()
3737

3838
if _, err := os.Stat(installed); err != nil {
3939
if !os.IsNotExist(err) {
40-
log.Logger.Error("fetch binary stat failed", zap.Error(err))
40+
log.L().Error("fetch binary stat failed", zap.Error(err))
4141
return
4242
}
4343
} else {
4444
if err := os.RemoveAll(installed); err != nil {
45-
log.Logger.Error("remove old binary failed", zap.Error(err))
45+
log.L().Error("remove old binary failed", zap.Error(err))
4646
return
4747
}
4848
}
4949

5050
fp, err := os.OpenFile(installed, os.O_CREATE|os.O_RDWR, os.ModePerm)
5151
if err != nil {
52-
log.Logger.Sugar().Errorf("write to %v", installed)
52+
log.L().Sugar().Errorf("write to %v", installed)
5353
return
5454
}
5555
defer fp.Close()
5656
_, err = io.Copy(fp, originFp)
5757
if err != nil {
5858
_ = os.RemoveAll(installed)
59-
log.Logger.Sugar().With(err).Errorf("copy binary to %s", installed)
59+
log.L().Sugar().With(err).Errorf("copy binary to %s", installed)
6060
return
6161
}
62-
log.Logger.Info("installed provider2domainset")
62+
log.L().Info("installed provider2domainset")
6363
}
6464

6565
func Uninstall() {
6666
file, err := exec.LookPath("provider2domainset")
6767
if err != nil {
68-
log.Logger.Error("find provider2domainset failed", zap.Error(err))
68+
log.L().Error("find provider2domainset failed", zap.Error(err))
6969
return
7070
}
7171

7272
if err := os.RemoveAll(file); err != nil {
73-
log.Logger.Error("remove binary failed", zap.Error(err), zap.String("path", file))
73+
log.L().Error("remove binary failed", zap.Error(err), zap.String("path", file))
7474
return
7575
}
7676
}

daemon/service.go

+7-7
Original file line numberDiff line numberDiff line change
@@ -20,26 +20,26 @@ func AddService() {
2020
_, err := exec.LookPath("provider2domainset")
2121
if err != nil {
2222
if !errors.Is(err, exec.ErrDot) {
23-
log.Logger.Error("fetch current binary path failed", zap.Error(err))
23+
log.L().Error("fetch current binary path failed", zap.Error(err))
2424
}
25-
log.Logger.Warn("provider2domainset hasn't been installed to path, let's turn to install it")
25+
log.L().Warn("provider2domainset hasn't been installed to path, let's turn to install it")
2626
Install()
2727
}
2828
if _, err := os.Stat(ServicePath); err == nil {
2929
err := os.Remove(ServicePath)
3030
if err != nil {
31-
log.Logger.Sugar().Warnf("remove %s failed", ServicePath)
31+
log.L().Sugar().Warnf("remove %s failed", ServicePath)
3232
}
3333
}
3434
file, err := os.OpenFile(ServicePath, os.O_CREATE|os.O_RDWR, 0755)
3535
if err != nil {
36-
log.Logger.Sugar().With(err).Fatalf("open %s failed", ServicePath)
36+
log.L().Sugar().With(err).Fatalf("open %s failed", ServicePath)
3737
}
3838
defer file.Close()
3939
if _, err := file.Write(ServiceFile); err != nil {
40-
log.Logger.Sugar().With(err).Fatalf("write %s failed", ServicePath)
40+
log.L().Sugar().With(err).Fatalf("write %s failed", ServicePath)
4141
}
42-
log.Logger.Info("add provider2domainset to init.d success")
42+
log.L().Info("add provider2domainset to init.d success")
4343
}
4444

4545
func RmService() {
@@ -48,6 +48,6 @@ func RmService() {
4848
if os.IsNotExist(err) {
4949
return
5050
}
51-
log.Logger.Error("delete service failed", zap.Error(err))
51+
log.L().Error("delete service failed", zap.Error(err))
5252
}
5353
}

log/log.go

+17-13
Original file line numberDiff line numberDiff line change
@@ -5,16 +5,22 @@ import (
55
"go.uber.org/zap/zapcore"
66
)
77

8-
var (
9-
Logger *zap.Logger
10-
atomicLevel zap.AtomicLevel
11-
)
8+
var l *Logger = nil
9+
10+
func L() *Logger {
11+
if l == nil {
12+
l, _ = Init()
13+
}
14+
return l
15+
}
16+
17+
func Init() (*Logger, error) {
18+
l := Logger{}
1219

13-
func Init() {
14-
atomicLevel = zap.NewAtomicLevel()
20+
l.Level = zap.NewAtomicLevel()
1521

1622
config := zap.Config{
17-
Level: atomicLevel,
23+
Level: l.Level,
1824
Development: true,
1925
Encoding: "console",
2026
EncoderConfig: zapcore.EncoderConfig{
@@ -34,13 +40,11 @@ func Init() {
3440
}
3541

3642
var err error
37-
Logger, err = config.Build()
38-
SetLogLevel(zapcore.InfoLevel)
43+
l.Logger, err = config.Build()
44+
l.SetLogLevel(zapcore.InfoLevel)
3945
if err != nil {
40-
panic(err)
46+
return nil, err
4147
}
42-
}
4348

44-
func SetLogLevel(level zapcore.Level) {
45-
atomicLevel.SetLevel(level)
49+
return &l, nil
4650
}

log/type.go

+15
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,15 @@
1+
package log
2+
3+
import (
4+
"go.uber.org/zap"
5+
"go.uber.org/zap/zapcore"
6+
)
7+
8+
type Logger struct {
9+
*zap.Logger
10+
Level zap.AtomicLevel
11+
}
12+
13+
func (L *Logger) SetLogLevel(level zapcore.Level) {
14+
L.Level.SetLevel(level)
15+
}

0 commit comments

Comments
 (0)