log

package
v0.14.0 Latest Latest
Warning

This package is not in the latest version of its module.

Go to latest
Published: Feb 5, 2026 License: GPL-3.0 Imports: 16 Imported by: 0

Documentation

Index

Constants

View Source
const RaceEnabled = false

RaceEnabled is false when the race detector is not active.

View Source
const ReportCrashRPC = "SimManager.ReportCrash"

ReportCrashRPC is the RPC method name for crash reports.

Variables

This section is empty.

Functions

func AnyPointerSlice

func AnyPointerSlice[T any](name string, ptrs []*T) slog.Attr

AnyPointerSlice is similar to slog.Any but takes a slice of pointers; unlike passing a slice of pointers to slog.Any, it logs the values pointed-to by the pointers rather than the pointer values themselves.

Types

type CrashReport added in v0.14.0

type CrashReport struct {
	Report    string
	System    SystemInfo
	Timestamp time.Time
}

CrashReport is sent via RPC when a crash occurs.

type Logger

type Logger struct {
	*slog.Logger
	LogFile string
	LogDir  string
	Start   time.Time
	// contains filtered or unexported fields
}

func New

func New(server bool, level string, dir string) *Logger

func (*Logger) CatchAndReportCrash

func (l *Logger) CatchAndReportCrash() any

func (*Logger) Debug

func (l *Logger) Debug(msg string, args ...any)

Debug wraps slog.Debug to add call stack information (and similarly for the following Logger methods...) Note that we do not wrap the entire slog logging interface, so, for example, WarnContext and Log do not have callstacks included.

We also wrap the logging methods to allow a nil *Logger, in which case debug and info messages are discarded (though warnings and errors still go through to slog.)

func (*Logger) Debugf

func (l *Logger) Debugf(msg string, args ...any)

Debugf is a convenience wrapper that logs just a message and allows printf-style formatting of the provided args.

func (*Logger) Error

func (l *Logger) Error(msg string, args ...any)

func (*Logger) Errorf

func (l *Logger) Errorf(msg string, args ...any)

func (*Logger) Info

func (l *Logger) Info(msg string, args ...any)

func (*Logger) Infof

func (l *Logger) Infof(msg string, args ...any)

func (*Logger) ReportCrash added in v0.13.0

func (l *Logger) ReportCrash(err any)

func (*Logger) SetCrashReportClient added in v0.14.0

func (l *Logger) SetCrashReportClient(client *rpc.Client)

SetCrashReportClient sets the RPC client to use for sending crash reports to the server. This should be called after connecting to the server.

func (*Logger) SetGPUInfo added in v0.14.0

func (l *Logger) SetGPUInfo(vendor, renderer string)

SetGPUInfo sets the GPU information for crash reports. This should be called after OpenGL is initialized.

func (*Logger) Warn

func (l *Logger) Warn(msg string, args ...any)

func (*Logger) Warnf

func (l *Logger) Warnf(msg string, args ...any)

func (*Logger) With

func (l *Logger) With(args ...any) *Logger

type StackFrame

type StackFrame struct {
	File     string `json:"file"`
	Line     int    `json:"line"`
	Function string `json:"function"`
}

func (StackFrame) String

func (f StackFrame) String() string

type StackFrames

type StackFrames []StackFrame

func Callstack

func Callstack(fr []StackFrame) StackFrames

func (StackFrames) String

func (f StackFrames) String() string

func (StackFrames) Strings

func (f StackFrames) Strings() []string

type SystemInfo added in v0.14.0

type SystemInfo struct {
	CPUCores    int
	CPUModel    string
	CPUVendor   string
	CPUFlags    []string
	GPUVendor   string
	GPURenderer string
	GoVersion   string
	OS          string
	Arch        string
}

SystemInfo contains system information for crash reports.

Jump to

Keyboard shortcuts

? : This menu
/ : Search site
f or F : Jump to
y or Y : Canonical URL