Skip to content

Commit 85a82d0

Browse files
authored
return error if init file failed
return error if init file failed
2 parents 7e3ff86 + e48040d commit 85a82d0

File tree

2 files changed

+23
-0
lines changed

2 files changed

+23
-0
lines changed

log.go

Lines changed: 3 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -178,7 +178,10 @@ func initFileLog(cfg *FileLogConfig) (*lumberjack.Logger, error) {
178178
if st.IsDir() {
179179
return nil, errors.New("can't use directory as log file name")
180180
}
181+
} else if !os.IsNotExist(err) {
182+
return nil, err
181183
}
184+
182185
if cfg.MaxSize == 0 {
183186
cfg.MaxSize = defaultLogMaxSize
184187
}

zap_log_test.go

Lines changed: 20 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -287,6 +287,26 @@ func TestCompressError(t *testing.T) {
287287
require.Error(t, err)
288288
}
289289

290+
func TestLogFileNoPermission(t *testing.T) {
291+
tempDir, _ := os.MkdirTemp("/tmp", "tests-log")
292+
defer os.RemoveAll(tempDir)
293+
conf := &Config{
294+
Level: "info",
295+
File: FileLogConfig{
296+
Filename: tempDir + "/test.log",
297+
MaxSize: 1,
298+
},
299+
}
300+
_, _, err := InitLogger(conf)
301+
require.NoError(t, err)
302+
303+
err = os.Chmod(tempDir, 0)
304+
require.NoError(t, err)
305+
306+
_, _, err = InitLogger(conf)
307+
require.Contains(t, err.Error(), "permission denied")
308+
}
309+
290310
// testLogSpy is a testing.TB that captures logged messages.
291311
type testLogSpy struct {
292312
testing.TB

0 commit comments

Comments
 (0)