Documentation ¶
Index ¶
- Variables
- func AddFilenameHook()
- func AddSentryHook(dsn string)
- func DefaultForRequest(r *http.Request) *logrus.Entry
- func Get() *logrus.Entry
- func GetLogEntry(r *http.Request) logrus.FieldLogger
- func IncludeRequest(log *logrus.Entry, r *http.Request) *logrus.Entry
- func Init(config Config) (*logrus.Entry, error)
- func LogEntrySetField(r *http.Request, key string, value interface{})
- func LogEntrySetFields(r *http.Request, fields map[string]interface{})
- func NewRequestLogger(logger *logrus.Logger) func(next http.Handler) http.Handler
- type Config
- type NConfig
- type RequestLogger
- type RequestLoggerEntry
Constants ¶
This section is empty.
Variables ¶
var Default *logrus.Entry // nolint:gochecknoglobals
Default is a log.Entry singleton. DEPRECATED
Functions ¶
func AddFilenameHook ¶
func AddFilenameHook()
AddFilenameHook adds hook that includes filename and line number into the log.
func AddSentryHook ¶
func AddSentryHook(dsn string)
AddSentryHook adds hook that sends all error, fatal and panic log lines to the sentry service.
func DefaultForRequest ¶
DefaultForRequest returns default logger with included http.Request details.
func GetLogEntry ¶
func GetLogEntry(r *http.Request) logrus.FieldLogger
func IncludeRequest ¶
IncludeRequest includes http.Request details into the log.Entry.
func LogEntrySetField ¶
LogEntrySetField add field to logger in request context.
func LogEntrySetFields ¶
LogEntrySetField add fields to logger in request context.
Types ¶
type Config ¶
type Config struct { // AppName identifier of the app. AppName string `json:"app_name" yaml:"app_name" mapstructure:"log.app_name"` // Level is a string representation of the `logrus.Level`. Level string `json:"level" yaml:"level" mapstructure:"log.level"` // Sentry is a DSN string for sentry hook. Sentry string `json:"sentry" yaml:"sentry" mapstructure:"log.sentry"` // AddTrace enable adding of the filename field into log. AddTrace bool `json:"add_trace" yaml:"add_trace" mapstructure:"log.add_trace"` // JSON enable json formatted output. JSON bool `json:"json" yaml:"json" mapstructure:"log.json"` }
Config is a options for the initialization of the default logrus.Entry.
type NConfig ¶
type NConfig struct { // AppName identifier of the app. AppName string `yaml:"app_name"` // Level is a string representation of the `logrus.Level`. Level noble.Secret `yaml:"level"` // Sentry is a DSN string for sentry hook. Sentry noble.Secret `yaml:"sentry"` // AddTrace enable adding of the filename field into log. AddTrace bool `yaml:"add_trace"` // JSON enable json formatted output. JSON bool `yaml:"json"` }
NConfig is a options for the initialization of the default logrus.Entry. N stands for Noble.
type RequestLogger ¶
RequestLogger is a simple, but powerful implementation of a custom structured logger backed on logrus. I encourage users to copy it, adapt it and make it their own. Also take a look at https://github.com/pressly/lg for a dedicated pkg based on this work, designed for context-based http routers.
func (*RequestLogger) NewLogEntry ¶
func (l *RequestLogger) NewLogEntry(r *http.Request) middleware.LogEntry
NewLogEntry sets log fields for http.Request.
type RequestLoggerEntry ¶
type RequestLoggerEntry struct {
Logger logrus.FieldLogger
}
RequestLoggerEntry is an implementation http.Request logger baked with logrus.
func (*RequestLoggerEntry) Panic ¶
func (l *RequestLoggerEntry) Panic(v interface{}, stack []byte)