Skip to content

index out of range error due 0 len log entry buffer #104

@repelliuss

Description

@repelliuss

Version: v1.0.118

I am trying to achieve following setup:

log.DefaultLogger = log.Logger{
		Level:      log.ParseLevel(cliArgs.LogLevel),
		Caller:     1,
		TimeField:  "time",
		TimeFormat: "",
		Writer:     &log.MultiEntryWriter{
			&log.ConsoleWriter { ColorOutput: true },
			&log.MultiLevelWriter{
				InfoWriter: &log.AsyncWriter {
					ChannelSize: 16384,
					DiscardOnFull: false,
					Writer: &log.FileWriter {
						Filename: "info.log",
						FileMode: 0600,
						MaxSize: 4 * 1024 * 1024 * 1024,
						MaxBackups: 32,
						EnsureFolder: false,
						LocalTime: false,
					},
				},
				WarnWriter: &log.AsyncWriter {
					ChannelSize: 16384,
					DiscardOnFull: false,
					Writer: &log.FileWriter {
						Filename: "warn.log",
						FileMode: 0600,
						MaxSize: 4 * 1024 * 1024 * 1024,
						MaxBackups: 32,
						EnsureFolder: false,
						LocalTime: false,
					},
				},
				ErrorWriter: &log.AsyncWriter {
					ChannelSize: 16384,
					DiscardOnFull: false,
					Writer: &log.FileWriter {
						Filename: "error.log",
						FileMode: 0600,
						MaxSize: 4 * 1024 * 1024 * 1024,
						MaxBackups: 32,
						EnsureFolder: false,
						LocalTime: false,
					},
				},
			},
			&log.AsyncWriter {
				ChannelSize: 16384,
				DiscardOnFull: false,
				Writer: &log.FileWriter {
					Filename: "universal.log",
					FileMode: 0600,
					MaxSize: 4 * 1024 * 1024 * 1024,
					MaxBackups: 32,
					EnsureFolder: false,
					LocalTime: false,
				},
			},
		},
	}

log.Info().Msg("Hello world Log")

log.DefaultLogger.Writer.(io.Closer).Close()

this results with following error:

�[90m2025-06-12T00:34:00.976+03:00�[0m �[32mINF�[0m 1 backend/main.go:109 �[36m>�[0m Hello world Log
panic: runtime error: index out of range [0] with length 0

goroutine 21 [running]:
github.com/phuslu/log.(*AsyncWriter).writever(0xc0000ac500)
	/home/repelliuss/go/pkg/mod/github.com/phuslu/log@v1.0.118/async_linux.go:23 +0x2e5
created by github.com/phuslu/log.(*AsyncWriter).init in goroutine 1
	/home/repelliuss/go/pkg/mod/github.com/phuslu/log@v1.0.118/async.go:36 +0xff
exit status 2

due log entry buffer being empty.

Metadata

Metadata

Assignees

No one assigned

    Labels

    bugSomething isn't workingenhancementNew feature or request

    Projects

    No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions