mirror of
https://github.com/kiddin9/op-packages.git
synced 2026-09-11 02:44:57 +08:00
39 lines
1.1 KiB
Diff
39 lines
1.1 KiB
Diff
From 0e78ad1d047043f9f3b4f47dea7cf9905ad09a7c Mon Sep 17 00:00:00 2001
|
|
From: sbwml <admin@cooluc.com>
|
|
Date: Wed, 19 Aug 2026 12:32:48 +0800
|
|
Subject: [PATCH 2/2] fix(mlog): fix log file padded with null bytes after
|
|
external truncation
|
|
|
|
Signed-off-by: sbwml <admin@cooluc.com>
|
|
---
|
|
mlog/rotator.go | 11 ++++++++---
|
|
1 file changed, 8 insertions(+), 3 deletions(-)
|
|
|
|
--- a/mlog/rotator.go
|
|
+++ b/mlog/rotator.go
|
|
@@ -52,8 +52,13 @@ func (r *Rotator) Write(p []byte) (n int
|
|
|
|
writeLen := int64(len(p))
|
|
if r.MaxSize > 0 && r.size+writeLen > r.MaxSize {
|
|
- if err := r.rotate(); err != nil {
|
|
- return 0, err
|
|
+ if info, err := r.f.Stat(); err == nil {
|
|
+ r.size = info.Size()
|
|
+ }
|
|
+ if r.size+writeLen > r.MaxSize {
|
|
+ if err := r.rotate(); err != nil {
|
|
+ return 0, err
|
|
+ }
|
|
}
|
|
}
|
|
|
|
@@ -84,7 +89,7 @@ func (r *Rotator) openNew() error {
|
|
if err != nil {
|
|
return err
|
|
}
|
|
- f, err := os.OpenFile(r.Filename, os.O_CREATE|os.O_WRONLY|os.O_TRUNC, 0644)
|
|
+ f, err := os.OpenFile(r.Filename, os.O_CREATE|os.O_WRONLY|os.O_TRUNC|os.O_APPEND, 0644)
|
|
if err != nil {
|
|
return err
|
|
}
|