diff --git a/modules/log/logger_impl.go b/modules/log/logger_impl.go
index d38c6516ed..77e7edf6aa 100644
--- a/modules/log/logger_impl.go
+++ b/modules/log/logger_impl.go
@@ -191,7 +191,7 @@ func (l *LoggerImpl) Log(skip int, level Level, format string, logArgs ...any) {
 	if ok {
 		fn := runtime.FuncForPC(pc)
 		if fn != nil {
-			event.Caller = fn.Name() + "()"
+			event.Caller = strings.TrimSuffix(fn.Name(), "[...]") + "()"
 		}
 	}
 	event.Filename, event.Line = strings.TrimPrefix(filename, projectPackagePrefix), line
diff --git a/modules/log/logger_impl_test.go b/modules/log/logger_impl_test.go
new file mode 100644
index 0000000000..59276a83f4
--- /dev/null
+++ b/modules/log/logger_impl_test.go
@@ -0,0 +1,27 @@
+// 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!")
+}