Skip to content

Commit 4718c02

Browse files
authored
Merge pull request #50 from coderbirju/update-logrotate
remove max file size check in openExistingOrNew
2 parents 70076b4 + 7ec92c8 commit 4718c02

File tree

2 files changed

+42
-9
lines changed

2 files changed

+42
-9
lines changed

logrotate.go

+4-9
Original file line numberDiff line numberDiff line change
@@ -136,7 +136,7 @@ func (l *Logger) Write(p []byte) (n int, err error) {
136136
}
137137

138138
if l.file == nil {
139-
if err = l.openExistingOrNew(len(p)); err != nil {
139+
if err = l.openExistingOrNew(); err != nil {
140140
return 0, err
141141
}
142142
}
@@ -269,10 +269,9 @@ func (l *Logger) backupName(name, nameTimeFormat string, local bool) (string, er
269269
return filepath.Join(dir, filename), nil
270270
}
271271

272-
// openExistingOrNew opens the logfile if it exists and if the current write
273-
// would not put it over MaxBytes. If there is no such file or the write would
274-
// put it over the MaxBytes, a new file is created.
275-
func (l *Logger) openExistingOrNew(writeLen int) error {
272+
// openExistingOrNew opens the logfile if it exists.
273+
// If there is no such file a new file is created.
274+
func (l *Logger) openExistingOrNew() error {
276275
l.millRun()
277276

278277
filename := l.filename()
@@ -284,10 +283,6 @@ func (l *Logger) openExistingOrNew(writeLen int) error {
284283
return fmt.Errorf("error getting log file info: %s", err)
285284
}
286285

287-
if info.Size()+int64(writeLen) >= l.max(int64(writeLen)) {
288-
return l.rotate()
289-
}
290-
291286
file, err := os.OpenFile(filename, os.O_APPEND|os.O_WRONLY, 0644)
292287
if err != nil {
293288
// if we fail to open the old log file for some reason, just ignore

logrotate_test.go

+38
Original file line numberDiff line numberDiff line change
@@ -78,6 +78,44 @@ func TestOpenExisting(t *testing.T) {
7878
fileCount(dir, 1, t)
7979
}
8080

81+
func TestOpenExistingOrNew(t *testing.T) {
82+
dir := makeTempDir("TestOpenExistingOrNew", t)
83+
defer os.RemoveAll(dir)
84+
85+
filename := logFile(dir)
86+
l := &Logger{
87+
Filename: filename,
88+
MaxBytes: 100,
89+
}
90+
91+
// File doesn't exist
92+
err := l.openExistingOrNew()
93+
isNil(err, t)
94+
assert(l.file != nil, t, "Expected file to be opened")
95+
equals(int64(0), l.size, t)
96+
97+
content := []byte("Hello, World!")
98+
_, err = l.file.Write(content)
99+
isNil(err, t)
100+
l.size = int64(len(content))
101+
102+
// Close
103+
err = l.file.Close()
104+
isNil(err, t)
105+
l.file = nil
106+
107+
// File exists and is not over MaxBytes
108+
err = l.openExistingOrNew()
109+
isNil(err, t)
110+
assert(l.file != nil, t, "Expected file to be opened")
111+
equals(int64(len(content)), l.size, t)
112+
113+
// Close
114+
err = l.file.Close()
115+
isNil(err, t)
116+
l.file = nil
117+
}
118+
81119
func TestWriteTooLong(t *testing.T) {
82120
currentTime = fakeTime
83121
dir := makeTempDir("TestWriteTooLong", t)

0 commit comments

Comments
 (0)