Documentation
¶
Index ¶
- func ContextWithRequest(ctx context.Context, req *Request) context.Context
- func ContextWithRequestType(ctx context.Context, reqType RequestType) context.Context
- func Init() error
- func LogPartnerRequest(log *Request)
- func LogRequest(log *Request)
- func LogUltronEx(msg *UltronExMsg)
- func MaskJSON(json, maskChar string, toMasks []MaskData) string
- func MaskXML(xml, maskChar string, toMasks []MaskData) string
- func RedactJSON(json, replacement string, keys [][]string) string
- func RedactXML(xml, replacement string, tags []string) string
- func Sync()
- type Headers
- type MaskData
- type MaskRestrictionType
- type Request
- type RequestType
- type UltronExMsg
Constants ¶
This section is empty.
Variables ¶
This section is empty.
Functions ¶
func ContextWithRequest ¶
ContextWithRequest returns a new context from a parent context with request added into it
func ContextWithRequestType ¶
func ContextWithRequestType(ctx context.Context, reqType RequestType) context.Context
ContextWithRequestType returns a new context from a parent context with request type added into it
func LogPartnerRequest ¶
func LogPartnerRequest(log *Request)
LogPartnerRequest logs a partner request to local file
func MaskJSON ¶ added in v0.1.15
MaskJSON mask parts of the json key paths value from the input json with replacement
Example:
input = ` { "first": "first value", "second": { "first": "1st of second", "second": "second@wego.com", "third": { "first": "1st of second third", "second": "2nd of second third", "third": "3rd of second third", } } }` maskData := []logger.MaskData{ { JSONKey: []string{"first"}, FistCharsToShow: 3, LastCharsToShow: 6, KeepSameLength: true, }, { JSONKey: []string{"second", "second"}, FistCharsToShow: 2, LastCharsToShow: 3, CharsToIgnore: []rune{'@'}, KeepSameLength: true, }, { JSONKey: []string{"second", "third", "first"}, FistCharsToShow: 3, LastCharsToShow: 1, KeepSameLength: true, }, } MaskJSON(input, "!", maskData) will return { "first": "fir!! value", "second": { "first": "1st of second", "second": "se!!!!@!!!!!com", "third": { "first": "1st!!!!!!!!!!!!!!!d", "second": "2nd of second third", "third": "3rd of second third", } } }
func MaskXML ¶ added in v0.1.15
MaskXML masks parts of the inner text of tags from the input XML with replacement
func RedactJSON ¶
RedactJSON replaces value of key paths from the input JSON with replacement or defaultReplacement when replacement is empty
Example:
input = ` { "first": "first value", "second": { "first": "1st of second", "second": "2nd of second", "third": { "first": "1st of second third", "second": "2nd of second third", "third": "3rd of second third", } } }` keys := [][]string{{"first"}, {"second", "second"}, {"second", "third", "first"}} RedactJSON(input, "Wego", keys) will return { "first": "Wego", "second": { "first": "1st of second", "second": "Wego", "third": { "first": "Wego", "second": "2nd of second third", "third": "3rd of second third", } } }
Types ¶
type Headers ¶
Headers ...
func (Headers) MarshalLogArray ¶
func (h Headers) MarshalLogArray(enc zapcore.ArrayEncoder) error
MarshalLogArray marshal Headers to zap log array Need to implement this to log it with zap.Array
type MaskData ¶ added in v0.1.15
type MaskData struct { FirstCharsToShow int LastCharsToShow int RestrictionType MaskRestrictionType CharsToIgnore []rune XMLTag string JSONKeys []string KeepSameLength bool // contains filtered or unexported fields }
MaskData the data as well as the information on how to mask the data
type MaskRestrictionType ¶ added in v0.1.15
type MaskRestrictionType string
MaskRestrictionType the type of text to mask, will only mask if text is of the specified type
const ( // MaskRestrictionTypeEmail will only mask email text MaskRestrictionTypeEmail MaskRestrictionType = "email" )
type Request ¶
type Request struct { Type RequestType Basics common.Basics Method string URL string RequestHeaders Headers RequestBody string IP string StatusCode int32 ResponseHeaders Headers ResponseBody string RequestedAt time.Time Duration time.Duration Error error }
Request contains general information of a request
func RequestFromContext ¶
RequestFromContext gets the request from context
type RequestType ¶
type RequestType string
RequestType ...
func RequestTypeFromContext ¶
func RequestTypeFromContext(ctx context.Context) (reqType RequestType)
RequestTypeFromContext gets the request type from context
type UltronExMsg ¶
UltronExMsg ...
func (UltronExMsg) MarshalLogObject ¶
func (m UltronExMsg) MarshalLogObject(enc zapcore.ObjectEncoder) error
MarshalLogObject marshal UltronExMsg to zap log object The struct need to implement this, so we can log it with zap.Object