Skip to content

Commit e8d5e1e

Browse files
authored
Merge pull request #1 from rrreeeyyy/fix-error-log-output
Use (os.Stdout, os.Stderr) as default instead of (/dev/stdout, /dev/stderr)
2 parents db91cfa + 79cd932 commit e8d5e1e

File tree

4 files changed

+34
-20
lines changed

4 files changed

+34
-20
lines changed

.gitignore

Lines changed: 2 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -1 +1,3 @@
11
/bin
2+
access.log
3+
error.log

cli/main.go

Lines changed: 26 additions & 14 deletions
Original file line numberDiff line numberDiff line change
@@ -48,26 +48,38 @@ func openWritableFile(path string) (*os.File, error) {
4848
}
4949

5050
func start(config *config.Config) {
51-
ef, err := openWritableFile(*config.ErrorLogConfig.Path)
52-
if err != nil {
53-
log.Fatal(err)
51+
var err error
52+
var errorLogger *log.Logger
53+
if config.ErrorLogConfig != nil {
54+
ef, err := openWritableFile(*config.ErrorLogConfig.Path)
55+
if err != nil {
56+
log.Fatal(err)
57+
}
58+
defer ef.Close()
59+
errorLogger = log.New(ef, "", log.LstdFlags)
60+
} else {
61+
errorLogger = log.New(os.Stderr, "", log.LstdFlags)
5462
}
55-
defer ef.Close()
5663

57-
errorLogger := log.New(ef, "", log.LstdFlags)
5864
errorLogger.Printf("INFO: ExporterProxy v%s", Version)
5965

6066
var accessLogger accesslogger.AccessLogger
6167
if config.AccessLogConfig != nil {
62-
af, err := openWritableFile(*config.AccessLogConfig.Path)
63-
if err != nil {
64-
errorLogger.Fatal(err)
65-
}
66-
defer af.Close()
67-
68-
accessLogger, err = accesslogger.New(*config.AccessLogConfig.Format, af, config.AccessLogConfig.Fields)
69-
if err != nil {
70-
errorLogger.Fatal(err)
68+
if config.AccessLogConfig.Path != nil {
69+
af, err := openWritableFile(*config.AccessLogConfig.Path)
70+
if err != nil {
71+
errorLogger.Fatal(err)
72+
}
73+
defer af.Close()
74+
accessLogger, err = accesslogger.New(*config.AccessLogConfig.Format, af, config.AccessLogConfig.Fields)
75+
if err != nil {
76+
errorLogger.Fatal(err)
77+
}
78+
} else {
79+
accessLogger, err = accesslogger.New(*config.AccessLogConfig.Format, os.Stdout, config.AccessLogConfig.Fields)
80+
if err != nil {
81+
errorLogger.Fatal(err)
82+
}
7183
}
7284
}
7385

config.example.yml

Lines changed: 4 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -4,17 +4,17 @@
44
# 127.0.0.1:8080
55
# SERVER_STARTER:0.0.0.0:8080
66
# SERVER_STARTER:/path/to/socket
7-
listen: "SERVER_STARTER:0.0.0.0:9099"
7+
listen: "0.0.0.0:9099"
88

99
# access_log (optional)
1010
access_log:
1111
format: "ltsv"
12-
path: "/dev/stdout"
12+
path: "./access.log" # optional (default: os.Stdout)
1313
fields: ["time", "time_nsec", "status", "size", "reqtime_nsec", "backend", "path", "query", "method"]
1414

15-
# error_log (required)
15+
# error_log (optional)
1616
error_log:
17-
path: "/dev/stderr"
17+
path: "./error.log" # default: os.Stderr
1818

1919
# exporters: The path of exporter_proxy and the URL of the destination exporter
2020
exporters:

config/config.go

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -17,12 +17,12 @@ type Config struct {
1717
ShutDownTimeout *time.Duration `yaml:"shutdown_timeout"`
1818
ExporterConfigs map[string]ExporterConfig `yaml:"exporters" validate:"required,dive"`
1919
AccessLogConfig *AccessLogConfig `yaml:"access_log"`
20-
ErrorLogConfig *ErrorLogConfig `yaml:"error_log" validate:"required,dive"`
20+
ErrorLogConfig *ErrorLogConfig `yaml:"error_log"`
2121
}
2222

2323
type AccessLogConfig struct {
2424
Format *string `yaml:"format" validate:"required"`
25-
Path *string `yaml:"path" validate:"required"`
25+
Path *string `yaml:"path"`
2626
Fields []string `yaml:"fields" validate:"required"`
2727
}
2828

0 commit comments

Comments
 (0)