logging

package
v2.0.0-beta.52 Latest Latest
Warning

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

Go to latest
Published: Apr 11, 2024 License: MPL-2.0 Imports: 21 Imported by: 2

Documentation

Index

Constants

View Source
const (
	AwsSdkKey         attribute.Key = "tf_aws.sdk"
	SigningRegionKey  attribute.Key = "tf_aws.signing_region"
	CustomEndpointKey attribute.Key = "tf_aws.custom_endpoint"
)
View Source
const (
	MaxResponseBodyLen = 4096
)

Variables

View Source
var UniqueIDRegex = regexp.MustCompile(`(A3T[A-Z0-9]` +
	`|ABIA` +
	`|ACCA` +
	`|AGPA` +
	`|AIDA` +
	`|AIPA` +
	`|AKIA` +
	`|ANPA` +
	`|ANVA` +
	`|APKA` +
	`|AROA` +
	`|ASCA` +
	`|ASIA` +
	`)[A-Z0-9]{16,}`)

IAM Unique ID prefixes from https://docs.aws.amazon.com/IAM/latest/UserGuide/reference_identifiers.html#identifiers-unique-ids

Functions

func CustomEndpoint

func CustomEndpoint(custom bool) attribute.KeyValue

func DecomposeHTTPRequest

func DecomposeHTTPRequest(ctx context.Context, req *http.Request) (map[string]any, error)

func DecomposeResponseHeaders

func DecomposeResponseHeaders(resp *http.Response) []attribute.KeyValue

func MaskAWSAccessKey

func MaskAWSAccessKey(field []byte) []byte

func MaskAWSSecretKeys

func MaskAWSSecretKeys(in []byte)

MaskAWSSecretKeys masks likely AWS secret access keys in the input. See https://aws.amazon.com/blogs/security/a-safer-way-to-distribute-aws-credentials-to-ec2/: "Find me 40-character, base-64 strings that don’t have any base 64 characters immediately before or after".

func MaskAWSSensitiveValues

func MaskAWSSensitiveValues(field string) string

func ReadTruncatedBody

func ReadTruncatedBody(reader *textproto.Reader, len int) (string, error)

func RegisterLogger

func RegisterLogger(ctx context.Context, logger Logger) context.Context

func RequestHeaderAttributeKey

func RequestHeaderAttributeKey(k string) attribute.Key

func ResponseHeaderAttributeKey

func ResponseHeaderAttributeKey(k string) attribute.Key

func SigningRegion

func SigningRegion(region string) attribute.KeyValue

Types

type HcLogger

type HcLogger struct{}

func NewHcLogger

func NewHcLogger(ctx context.Context, logger hclog.Logger) (context.Context, HcLogger)

func (HcLogger) Debug

func (l HcLogger) Debug(ctx context.Context, msg string, fields ...map[string]any)

func (HcLogger) Info

func (l HcLogger) Info(ctx context.Context, msg string, fields ...map[string]any)

func (HcLogger) SetField

func (l HcLogger) SetField(ctx context.Context, key string, value any) context.Context

func (HcLogger) SubLogger

func (l HcLogger) SubLogger(ctx context.Context, name string) (context.Context, Logger)

func (HcLogger) Trace

func (l HcLogger) Trace(ctx context.Context, msg string, fields ...map[string]any)

func (HcLogger) Warn

func (l HcLogger) Warn(ctx context.Context, msg string, fields ...map[string]any)

type Logger

type Logger interface {
	Warn(ctx context.Context, msg string, fields ...map[string]any)
	Info(ctx context.Context, msg string, fields ...map[string]any)
	Debug(ctx context.Context, msg string, fields ...map[string]any)
	Trace(ctx context.Context, msg string, fields ...map[string]any)

	SetField(ctx context.Context, key string, value any) context.Context

	SubLogger(ctx context.Context, name string) (context.Context, Logger)
}

func RetrieveLogger

func RetrieveLogger(ctx context.Context) Logger

type NullLogger

type NullLogger struct {
}

func (NullLogger) Debug

func (l NullLogger) Debug(ctx context.Context, msg string, fields ...map[string]any)

func (NullLogger) Info

func (l NullLogger) Info(ctx context.Context, msg string, fields ...map[string]any)

func (NullLogger) SetField

func (l NullLogger) SetField(ctx context.Context, key string, value any) context.Context

func (NullLogger) SubLogger

func (l NullLogger) SubLogger(ctx context.Context, name string) (context.Context, Logger)

func (NullLogger) Trace

func (l NullLogger) Trace(ctx context.Context, msg string, fields ...map[string]any)

func (NullLogger) Warn

func (l NullLogger) Warn(ctx context.Context, msg string, fields ...map[string]any)

type RequestBodyLogger

type RequestBodyLogger interface {
	Log(ctx context.Context, req *http.Request, attrs *[]attribute.KeyValue) error
}

type ResponseBodyLogger

type ResponseBodyLogger interface {
	Log(ctx context.Context, resp *http.Response, attrs *[]attribute.KeyValue) error
}

type S3ObjectResponseBodyLogger

type S3ObjectResponseBodyLogger struct{}

func (*S3ObjectResponseBodyLogger) Log

type TfLogger

type TfLogger string

func NewTfLogger

func NewTfLogger(ctx context.Context) (context.Context, TfLogger)

func (TfLogger) Debug

func (l TfLogger) Debug(ctx context.Context, msg string, fields ...map[string]any)

func (TfLogger) Info

func (l TfLogger) Info(ctx context.Context, msg string, fields ...map[string]any)

func (TfLogger) SetField

func (l TfLogger) SetField(ctx context.Context, key string, value any) context.Context

func (TfLogger) SubLogger

func (l TfLogger) SubLogger(ctx context.Context, name string) (context.Context, Logger)

func (TfLogger) Trace

func (l TfLogger) Trace(ctx context.Context, msg string, fields ...map[string]any)

func (TfLogger) Warn

func (l TfLogger) Warn(ctx context.Context, msg string, fields ...map[string]any)

Jump to

Keyboard shortcuts

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