File: log.go

package info (click to toggle)
golang-github-graph-gophers-graphql-go 0.0~git20180609.bb97385-2
  • links: PTS, VCS
  • area: main
  • in suites: buster, buster-backports
  • size: 632 kB
  • sloc: makefile: 4
file content (23 lines) | stat: -rw-r--r-- 681 bytes parent folder | download | duplicates (2)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
package log

import (
	"context"
	"log"
	"runtime"
)

// Logger is the interface used to log panics that occur durring query execution. It is setable via graphql.ParseSchema
type Logger interface {
	LogPanic(ctx context.Context, value interface{})
}

// DefaultLogger is the default logger used to log panics that occur durring query execution
type DefaultLogger struct{}

// LogPanic is used to log recovered panic values that occur durring query execution
func (l *DefaultLogger) LogPanic(_ context.Context, value interface{}) {
	const size = 64 << 10
	buf := make([]byte, size)
	buf = buf[:runtime.Stack(buf, false)]
	log.Printf("graphql: panic occurred: %v\n%s", value, buf)
}