v0.1.11 harden logging lifecycle, sanitization, and formatter edge cases
Test / test (push) Canceled after 0s
Test / fuzz (./compat, FuzzParseFormat) (push) Canceled after 0s
Test / fuzz (./formatter, FuzzFormatJSON) (push) Canceled after 0s
Test / fuzz (./formatter, FuzzFormatTextPolicy) (push) Canceled after 0s
Test / fuzz (./sanitizer, FuzzSanitize) (push) Canceled after 0s
Test / fuzz (./sanitizer, FuzzSerializerJSON) (push) Canceled after 0s

This commit is contained in:
lixen committed 2026-09-26 14:25:14 -04:00
1 parent 79a81db3ca
commit 2417e51da1
46 files changed
+1846 -1289

No files matched your search

+20 -4
View File
@@ -1,6 +1,9 @@
package log
import (
"math"
"slices"
"github.com/lixenwraith/log/sanitizer"
)
@@ -23,7 +26,7 @@ func NewBuilder() *Builder {
// ContextKeys names the record keys for Context values
func (b *Builder) ContextKeys(tag string, vals ...string) *Builder {
b.ctxTag = tag
b.ctxVals = vals
b.ctxVals = slices.Clone(vals)
return b
}
@@ -67,7 +70,7 @@ func (b *Builder) LevelString(level string) *Builder {
return b
}
// Name sets the log level
// Name sets the base filename
func (b *Builder) Name(name string) *Builder {
b.cfg.Name = name
return b
@@ -91,7 +94,7 @@ func (b *Builder) Sanitization(policy sanitizer.PolicyPreset) *Builder {
return b
}
// Extension sets the log level
// Extension sets the filename extension without a leading dot
func (b *Builder) Extension(ext string) *Builder {
b.cfg.Extension = ext
return b
@@ -111,6 +114,10 @@ func (b *Builder) MaxSizeKB(size int64) *Builder {
// MaxSizeMB sets the maximum log file size in MB
func (b *Builder) MaxSizeMB(size int64) *Builder {
if size < 0 || size > math.MaxInt64/(sizeMultiplier*sizeMultiplier) {
b.err = fmtErrorf("size in MB is out of range: %d", size)
return b
}
b.cfg.MaxSizeKB = size * sizeMultiplier
return b
}
@@ -127,7 +134,7 @@ func (b *Builder) HeartbeatLevel(level int64) *Builder {
return b
}
// HeartbeatIntervalS sets the heartbeat monitoring level
// HeartbeatIntervalS sets the heartbeat interval in seconds
func (b *Builder) HeartbeatIntervalS(interval int64) *Builder {
b.cfg.HeartbeatIntervalS = interval
return b
@@ -159,6 +166,10 @@ func (b *Builder) MaxTotalSizeKB(size int64) *Builder {
// MaxTotalSizeMB sets the maximum total size of all log files in MB
func (b *Builder) MaxTotalSizeMB(size int64) *Builder {
if size < 0 || size > math.MaxInt64/(sizeMultiplier*sizeMultiplier) {
b.err = fmtErrorf("size in MB is out of range: %d", size)
return b
}
b.cfg.MaxTotalSizeKB = size * sizeMultiplier
return b
}
@@ -171,6 +182,10 @@ func (b *Builder) MinDiskFreeKB(size int64) *Builder {
// MinDiskFreeMB sets the minimum required free disk space in MB
func (b *Builder) MinDiskFreeMB(size int64) *Builder {
if size < 0 || size > math.MaxInt64/(sizeMultiplier*sizeMultiplier) {
b.err = fmtErrorf("size in MB is out of range: %d", size)
return b
}
b.cfg.MinDiskFreeKB = size * sizeMultiplier
return b
}
@@ -259,6 +274,7 @@ func (b *Builder) EnableConsole(enable bool) *Builder {
// if err == nil {
//
// defer logger.Shutdown()
// if err := logger.Start(); err != nil { return }
// logger.Info("Logger initialized successfully")
//
// }