Skip to content

upper/db/v4 Logging source of line where SQL was executed #599

Open
@derkan

Description

@derkan

Hi,
As query logging is being run deferred;

	defer func(start time.Time) {
		queryLog(&QueryStatus{
			TxID:    sess.txID,
			SessID:  sess.sessID,
			Query:   query,
			Err:     err,
			Start:   start,
			End:     time.Now(),
			Context: ctx,
		})
	}(time.Now())

We lost caller file:line location. Because of this, current logger always prints location as ...sqladapter/session.go:647 which is meaningless.

func (c *loggingCollector) logf(level LogLevel, f string, v ...interface{}) {
	format := level.String() + "\n" + f
	if _, file, line, ok := runtime.Caller(2); ok {
		format = fmt.Sprintf("log_level=%s file=%s:%d\n%s", level, file, line, f)
	}
	format = "upper/db: " + format
...

I think we should respect logging as first-class.

Metadata

Metadata

Assignees

Type

No type

Projects

No projects

Milestone

No milestone

Relationships

None yet

Development

No branches or pull requests

Issue actions