Movatterモバイル変換


[0]ホーム

URL:


logger

package
v1.92.2Latest Latest
Warning

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

Go to latest
Published: Dec 10, 2025 License:BSD-3-ClauseImports:17Imported by:250

Details

Repository

github.com/tailscale/tailscale

Links

Documentation

Overview

Package logger defines a type for writing to logs. It's just aconvenience type so that we don't have to pass verbose func(...)types around.

Index

Constants

This section is empty.

Variables

View Source
var LogfKey =ctxkey.New("",Logf(log.Printf))

LogfKey stores and loadsLogf values within acontext.Context.

Functions

funcAsJSONadded inv1.50.0

func AsJSON(vany)fmt.Formatter

AsJSON returns a formatter that formats v as JSON. The value is suitable topassing to a regular %v printf argument. (%s is not required)

If json.Marshal returns an error, the output is "%%!JSON-ERROR:" followed bythe error string.

funcDiscardadded inv0.98.0

func Discard(string, ...any)

Discard is a Logf that throws away the logs given to it.

funcFuncWriter

func FuncWriter(fLogf)io.Writer

FuncWriter returns an io.Writer that writes to f.

funcStdLogger

func StdLogger(fLogf) *log.Logger

StdLogger returns a standard library logger from a Logf.

Types

typeArgWriteradded inv0.98.1

type ArgWriter func(*bufio.Writer)

ArgWriter is a fmt.Formatter that can be passed to any Logf func toefficiently write to a %v argument without allocations.

func (ArgWriter)Formatadded inv0.98.1

func (fnArgWriter) Format(ffmt.State, _rune)

typeContextdeprecatedadded inv1.20.0

type Contextcontext.Context

A Context is a context.Context that should contain a custom log function, obtainable from FromContext.If no log function is present, FromContext will return log.Printf.To construct a Context, use Add

Deprecated: Do not use.

funcCtxdeprecatedadded inv1.20.0

func Ctx(ctxcontext.Context, fnLogf)Context

Ctx constructs a Context from ctx with fn as its custom log function.

Deprecated: Use [LogfKey.WithValue] instead.

typeHTTPServerLogFilteradded inv1.62.0

type HTTPServerLogFilter struct {InnerLogf}

HTTPServerLogFilter is an io.Writer that can be used as thenet/http.Server.ErrorLog logger, and will filter out noisy, low-signalmessages that clutter up logs.

func (HTTPServerLogFilter)Writeadded inv1.62.0

func (lfHTTPServerLogFilter) Write(p []byte) (int,error)

typeLogf

type Logf func(formatstring, args ...any)

Logf is the basic Tailscale logger type: a printf-like func.Like log.Printf, the format need not end in a newline.Logf functions must be safe for concurrent use.

funcFilteredadded inv1.4.0

func Filtered(logfLogf, allow func(sstring)bool)Logf

Filtered returns a Logf that silently swallows some log lines.Each inbound format and args is evaluated and printed to a string s.The original format and args are passed to logf if and only if allow(s) returns true.

funcFromContextdeprecatedadded inv1.20.0

func FromContext(ctxContext)Logf

FromContext extracts a log function from ctx.

Deprecated: Use [LogfKey.Value] instead.

funcLogOnChangeadded inv0.98.1

func LogOnChange(logfLogf, maxIntervaltime.Duration, timeNow func()time.Time)Logf

LogOnChange logs a given line only if line != lastLine, or if maxInterval has passedsince the last time this identical line was logged.

funcLogfCloseradded inv1.4.0

func LogfCloser(logfLogf) (newLogfLogf, close func())

LogfCloser wraps logf to create a logger that can be closed.Calling close makes all future calls to newLogf into no-ops.

funcRateLimitedFnadded inv0.98.1

func RateLimitedFn(logfLogf, ftime.Duration, burstint, maxCacheint)Logf

RateLimitedFn is a wrapper for RateLimitedFnWithClock that includes thecurrent time automatically. This is mainly for backward compatibility.

funcRateLimitedFnWithClockadded inv1.8.0

func RateLimitedFnWithClock(logfLogf, ftime.Duration, burstint, maxCacheint, timeNow func()time.Time)Logf

RateLimitedFnWithClock returns a rate-limiting Logf wrapping the givenlogf. Messages are allowed through at a maximum of one message every f(where f is a time.Duration), in bursts of up to burst messages at atime. Up to maxCache format strings will be tracked separately.timeNow is a function that returns the current time, used for calculatingrate limits.

funcRusagePrefixLogadded inv1.2.0

func RusagePrefixLog(logfLogf)Logf

RusagePrefixLog returns a Logf func wrapping the provided logf func that addsa prefixed log message to each line with the current binary memory usageand max RSS.

funcSlowLoggerWithClockadded inv1.38.0

func SlowLoggerWithClock(ctxcontext.Context, logfLogf, ftime.Duration, burstint, timeNow func()time.Time)Logf

SlowLoggerWithClock is a logger that applies rate limits similar toRateLimitedFnWithClock, but instead of dropping logs will sleep until theycan be written. This should only be used for debug logs, and not in a hot path.

The provided context, if canceled, will cause all logs to be dropped andprevent any sleeps.

funcTestLoggeradded inv1.50.0

func TestLogger(tbtestenv.TB)Logf

TestLogger returns a logger that logs to tb.Logfwith a prefix to make it easier to distinguish spamfrom explicit test failures.

funcWithPrefix

func WithPrefix(fLogf, prefixstring)Logf

WithPrefix wraps f, prefixing each format with the provided prefix.

func (Logf)JSONadded inv1.22.0

func (logfLogf) JSON(levelint, recTypestring, vany)

JSON marshals v as JSON and writes it to logf formatted with the annotation to make logtailtreat it as a structured log.

The recType is the record type and becomes the key of the wrapperJSON object that is logged. That is, if recType is "foo" and v is123, the value logged is {"foo":123}.

Do not use recType "logtail", "v", "text", or "metrics", with any case.Those are reserved for the logging system.

The level can be from 0 to 9. Levels from 1 to 9 are included inthe logged JSON object, like {"foo":123,"v":2}.

Source Files

View all Source files

Jump to

Keyboard shortcuts

? : This menu
/ : Search site
f orF : Jump to
y orY : Canonical URL
go.dev uses cookies from Google to deliver and enhance the quality of its services and to analyze traffic.Learn more.

[8]ページ先頭

©2009-2025 Movatter.jp