Skip to content

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

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.

Activity

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Metadata

Metadata

Assignees

Type

No type

Projects

No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions