mirror of
https://codeberg.org/forgejo/forgejo.git
synced 2025-03-12 00:12:37 +01:00
- If the caller function has generics then `runtime.FuncForPC(...).Name()` will not show the generic types and instead collapse it to `[...]`. Remove this suffix from the function name. - This fixes an issue where the logging of functions that use generics such as `db.Find` to be logged as `]()` instead of `Find()`, as the last dot in `[...]` was being used as a cutoff point. - Unit test added.
27 lines
722 B
Go
27 lines
722 B
Go
// Copyright 2025 The Forgejo Authors. All rights reserved.
|
|
// SPDX-License-Identifier: GPL-3.0-or-later
|
|
|
|
package log
|
|
|
|
import (
|
|
"testing"
|
|
|
|
"github.com/stretchr/testify/assert"
|
|
)
|
|
|
|
func testGeneric[T any](log *LoggerImpl, t T) {
|
|
log.Log(0, INFO, "Just testing the logging of a generic function %v", t)
|
|
}
|
|
|
|
func TestLog(t *testing.T) {
|
|
bufferWriter := NewEventWriterBuffer("test-buffer", WriterMode{
|
|
Level: INFO,
|
|
})
|
|
|
|
logger := NewLoggerWithWriters(t.Context(), "test", bufferWriter)
|
|
|
|
testGeneric(logger, "I'm the generic value!")
|
|
logger.Close()
|
|
|
|
assert.Contains(t, bufferWriter.Buffer.String(), ".../logger_impl_test.go:13:testGeneric() [I] Just testing the logging of a generic function I'm the generic value!")
|
|
}
|