Documentation
¶
Overview ¶
Package logjam provides a go client for sending application metrics and log lines to a logjam endpoint. See https://github.com/skaes/logjam_app.
Index ¶
- func DefaultActionNameExtractor(r *http.Request) string
- func LegacyActionNameExtractor(r *http.Request) string
- func Log(hc HasContext, severity LogLevel, format string, args ...interface{})
- func LogDebug(hc HasContext, format string, args ...interface{})
- func LogError(hc HasContext, format string, args ...interface{})
- func LogFatal(hc HasContext, format string, args ...interface{})
- func LogInfo(hc HasContext, format string, args ...interface{})
- func LogWarn(hc HasContext, format string, args ...interface{})
- func NewMiddleware(handler http.Handler) http.Handler
- func SetCallHeaders(hc HasContext, outgoing *http.Request)
- func SetupAgent(options *Options)
- func ShutdownAgent()
- type ActionNameExtractor
- type HasContext
- type LogLevel
- type Logger
- type Options
- type Request
- func (r *Request) AddCount(key string, value int64)
- func (r *Request) AddDuration(key string, value time.Duration)
- func (r *Request) AugmentRequest(incoming *http.Request) *http.Request
- func (r *Request) ChangeAction(w http.ResponseWriter, action string)
- func (r *Request) Count(key string)
- func (r *Request) Finish(code int)
- func (r *Request) GetField(key string) interface{}
- func (r *Request) Log(severity LogLevel, line string)
- func (r *Request) MeasureDuration(key string, f func())
- func (r *Request) NewContext(c context.Context) context.Context
- func (r *Request) SetField(key string, value interface{})
Constants ¶
This section is empty.
Variables ¶
This section is empty.
Functions ¶
func DefaultActionNameExtractor ¶
DefaultActionNameExtractor replaces slashes with "::" and camel cases the individual path segments.
func LegacyActionNameExtractor ¶
LegacyActionNameExtractor is an extractor used in older versions of this package. Use it if you want to keep old action names in Logjam.
func Log ¶
func Log(hc HasContext, severity LogLevel, format string, args ...interface{})
Log takes a context to be able to collect all logs within the same request. If you're using gin-gonic, please pass the (*gin.Context).Request.Context() Maximum line length is 2048 characters.
func LogDebug ¶
func LogDebug(hc HasContext, format string, args ...interface{})
LogDebug calls Log with DEBUG severity.
func LogError ¶
func LogError(hc HasContext, format string, args ...interface{})
LogError calls Log with ERROR severity.
func LogFatal ¶
func LogFatal(hc HasContext, format string, args ...interface{})
LogFatal calls Log with FATAL severity.
func LogInfo ¶
func LogInfo(hc HasContext, format string, args ...interface{})
LogInfo calls Log with INFO severity.
func LogWarn ¶
func LogWarn(hc HasContext, format string, args ...interface{})
LogWarn calls Log with WARN severity.
func NewMiddleware ¶
NewMiddleware can be used to wrap any standard http.Handler.
func SetCallHeaders ¶ added in v0.0.7
func SetCallHeaders(hc HasContext, outgoing *http.Request)
SetCallHeaders makes sure all X-Logjam-* Headers are copied into the outgoing request. Call this before you call other APIs.
func SetupAgent ¶
func SetupAgent(options *Options)
SetupAgent configures application name, environment name and ZeroMQ socket options.
Types ¶
type ActionNameExtractor ¶
ActionNameExtractor takes a HTTP request and returns a logjam conformant action name.
type HasContext ¶
HasContext is any object that reponds to the Context method.
type Logger ¶
type Logger interface {
Println(v ...interface{})
Printf(fmt string, v ...interface{})
}
Logger must provide some methods to let Logjam output its logs.
type Options ¶ added in v0.0.7
type Options struct {
AppName string // Name of your application
EnvName string // What environment you're running in (production, preview, ...)
Endpoints string // Comma separated list of ZeroMQ connections specs, defaults to localhost
Port int // ZeroMQ default port for ceonnection specs
Linger int // ZeroMQ socket option of the same name
Sndhwm int // ZeroMQ socket option of the same name
Rcvhwm int // ZeroMQ socket option of the same name
Sndtimeo int // ZeroMQ socket option of the same name
Rcvtimeo int // ZeroMQ socket option of the same name
Logger Logger // TODO: why is this an option?
ActionNameExtractor ActionNameExtractor // Function to transform path segments to logjam action names.
ObfuscateIPs bool // Whether IPa addresses should be obfuscated.
MaxLineLength int // Long lines truncation threshold, defaults to 2048.
MaxBytesAllLines int // Max number of bytes of all log lines, defaults to 1MB.
}
Options such as appliction name, environment and ZeroMQ socket options.
type Request ¶
type Request struct {
// contains filtered or unexported fields
}
Request encapsulates information about the current logjam request.
func GetRequest ¶
func GetRequest(hc HasContext) *Request
GetRequest retrieves a logjam request from an object with Context. Returns nil if no request is stored in the context.
func NewRequest ¶
NewRequest creates a new logjam request for a given action name.
func (*Request) AddDuration ¶
AddDuration increases increments a timer metric associated with this request.
func (*Request) AugmentRequest ¶
AugmentRequest extends a given http request with a logjam request stored in its context.
func (*Request) ChangeAction ¶ added in v0.0.6
func (r *Request) ChangeAction(w http.ResponseWriter, action string)
ChangeAction changes the action name and updates the corresponding header on the given http request writer.
func (*Request) MeasureDuration ¶
MeasureDuration is a helper function that records the duration of execution of the passed function in cases where it is cumbersome to just use AddDuration instead.
func (*Request) NewContext ¶
NewContext creates a new context with the request added.