make the code in Write a little more logical, and add a missing test, though the code worked correctly before.
This commit is contained in:
+6
-4
@@ -119,13 +119,15 @@ func (l *Logger) Write(p []byte) (n int, err error) {
|
|||||||
"write length %d exceeds maximum file size %d", writeLen, l.max(),
|
"write length %d exceeds maximum file size %d", writeLen, l.max(),
|
||||||
)
|
)
|
||||||
}
|
}
|
||||||
if l.size+writeLen > l.max() {
|
|
||||||
if err := l.rotate(); err != nil {
|
if l.file == nil {
|
||||||
|
if err = l.openExistingOrNew(len(p)); err != nil {
|
||||||
return 0, err
|
return 0, err
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
if l.file == nil {
|
|
||||||
if err = l.openExistingOrNew(len(p)); err != nil {
|
if l.size+writeLen > l.max() {
|
||||||
|
if err := l.rotate(); err != nil {
|
||||||
return 0, err
|
return 0, err
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|||||||
@@ -183,6 +183,37 @@ func TestAutoRotate(t *testing.T) {
|
|||||||
fileCount(dir, 2, t)
|
fileCount(dir, 2, t)
|
||||||
}
|
}
|
||||||
|
|
||||||
|
func TestFirstWriteRotate(t *testing.T) {
|
||||||
|
currentTime = fakeTime
|
||||||
|
dir := makeTempDir("TestFirstWriteRotate", t)
|
||||||
|
defer os.RemoveAll(dir)
|
||||||
|
|
||||||
|
l := &Logger{
|
||||||
|
Dir: dir,
|
||||||
|
NameFormat: format,
|
||||||
|
MaxSize: 10,
|
||||||
|
}
|
||||||
|
defer l.Close()
|
||||||
|
|
||||||
|
filename := logFile(dir)
|
||||||
|
err := ioutil.WriteFile(filename, []byte("boooooo!"), 0600)
|
||||||
|
isNil(err, t)
|
||||||
|
|
||||||
|
// set the current time one day later
|
||||||
|
defer newFakeTime(Day)()
|
||||||
|
|
||||||
|
// this would make us rotate
|
||||||
|
b := []byte("fooo!")
|
||||||
|
n, err := l.Write(b)
|
||||||
|
isNil(err, t)
|
||||||
|
equals(len(b), n, t)
|
||||||
|
|
||||||
|
filename2 := logFile(dir)
|
||||||
|
existsWithLen(filename2, n, t)
|
||||||
|
|
||||||
|
fileCount(dir, 2, t)
|
||||||
|
}
|
||||||
|
|
||||||
func TestMaxBackups(t *testing.T) {
|
func TestMaxBackups(t *testing.T) {
|
||||||
currentTime = fakeTime
|
currentTime = fakeTime
|
||||||
dir := makeTempDir("TestMaxBackups", t)
|
dir := makeTempDir("TestMaxBackups", t)
|
||||||
|
|||||||
Reference in New Issue
Block a user