Documentation
¶
Index ¶
- func Get(c *gin.Context) zerolog.Logger
- func ParseLevel(levelStr string) (zerolog.Level, error)
- func SetLogger(opts ...Option) gin.HandlerFunc
- type EventFn
- type Fn
- type Option
- func WithClientErrorLevel(lvl zerolog.Level) Option
- func WithContext(fn func(*gin.Context, *zerolog.Event) *zerolog.Event) Option
- func WithDefaultLevel(lvl zerolog.Level) Option
- func WithLogger(fn func(*gin.Context, zerolog.Logger) zerolog.Logger) Option
- func WithPathLevel(m map[string]zerolog.Level) Option
- func WithServerErrorLevel(lvl zerolog.Level) Option
- func WithSkipPath(s []string) Option
- func WithSkipPathRegexps(regs ...*regexp.Regexp) Option
- func WithSkipper(s Skipper) Option
- func WithUTC(s bool) Option
- func WithWriter(s io.Writer) Option
- type Skipper
Constants ¶
This section is empty.
Variables ¶
This section is empty.
Functions ¶
func Get ¶ added in v1.2.0
Get retrieves the zerolog.Logger instance from the given gin.Context. It assumes that the logger has been previously set in the context with the key loggerKey. If the logger is not found, it will panic.
Parameters:
c - the gin.Context from which to retrieve the logger.
Returns:
zerolog.Logger - the logger instance stored in the context.
func ParseLevel ¶ added in v0.2.6
ParseLevel parses a string representation of a log level and returns the corresponding zerolog.Level. It takes a single argument:
- levelStr: a string representing the log level (e.g., "debug", "info", "warn", "error").
It returns:
- zerolog.Level: the parsed log level.
- error: an error if the log level string is invalid.
func SetLogger ¶
func SetLogger(opts ...Option) gin.HandlerFunc
SetLogger returns a gin.HandlerFunc (middleware) that logs requests using zerolog. It accepts a variadic number of Option functions to customize the logger's behavior.
The logger configuration includes: - defaultLevel: the default logging level (default: zerolog.InfoLevel). - clientErrorLevel: the logging level for client errors (default: zerolog.WarnLevel). - serverErrorLevel: the logging level for server errors (default: zerolog.ErrorLevel). - output: the output writer for the logger (default: gin.DefaultWriter). - skipPath: a list of paths to skip logging. - skipPathRegexps: a list of regular expressions to skip logging for matching paths. - logger: a custom logger function to use instead of the default logger.
The middleware logs the following request details: - method: the HTTP method of the request. - path: the URL path of the request. - ip: the client's IP address. - user_agent: the User-Agent header of the request. - status: the HTTP status code of the response. - latency: the time taken to process the request. - body_size: the size of the response body.
The logging level for each request is determined based on the response status code: - clientErrorLevel for 4xx status codes. - serverErrorLevel for 5xx status codes. - defaultLevel for other status codes. - Custom levels can be set for specific paths using the pathLevels configuration.
Types ¶
type Fn ¶ added in v0.2.4
Fn is a function type that takes a gin.Context and a zerolog.Logger as parameters, and returns a zerolog.Logger. It is typically used to modify or enhance the logger within the context of a Gin HTTP request.
type Option ¶ added in v0.1.0
type Option interface {
// contains filtered or unexported methods
}
Option is an interface that defines a method to apply a configuration to a given config instance. Implementations of this interface can be used to modify the configuration settings of the logger.
func WithClientErrorLevel ¶ added in v0.2.2
WithClientErrorLevel set the log level used for request with status code between 400 and 499
func WithContext ¶ added in v1.2.2
WithContext is an option for configuring the logger with a custom context function. The provided function takes a *gin.Context and a *zerolog.Event, and returns a modified *zerolog.Event. This allows for custom logging behavior based on the request context.
Parameters:
fn - A function that takes a *gin.Context and a *zerolog.Event, and returns a modified *zerolog.Event.
Returns:
An Option that applies the custom context function to the logger configuration.
func WithDefaultLevel ¶ added in v0.2.2
WithDefaultLevel set the log level used for request with status code < 400
func WithLogger ¶ added in v0.1.0
WithLogger returns an Option that sets the logger function in the config. The logger function is a function that takes a *gin.Context and a zerolog.Logger, and returns a zerolog.Logger. This function is typically used to modify or enhance the logger within the context of a Gin HTTP request.
Parameters:
fn (Fn): A function that takes a *gin.Context and a zerolog.Logger, and returns a zerolog.Logger.
Returns:
Option: An option that sets the logger function in the config.
func WithPathLevel ¶ added in v1.0.0
WithPathLevel use logging level for successful requests to a specific path
func WithServerErrorLevel ¶ added in v0.2.2
WithServerErrorLevel sets the logging level for server errors. It takes a zerolog.Level as an argument and returns an Option. This option modifies the serverErrorLevel field in the config struct.
func WithSkipPath ¶ added in v0.1.0
WithSkipPath skip URL path by specific pattern
func WithSkipPathRegexps ¶ added in v0.3.0
WithSkipPathRegexps returns an Option that sets the skipPathRegexps field in the config. The skipPathRegexps field is a list of regular expressions that match paths to be skipped from logging.
Parameters:
regs ([]*regexp.Regexp): A list of regular expressions to match paths to be skipped from logging.
Returns:
Option: An option that sets the skipPathRegexps field in the config.
func WithSkipper ¶ added in v1.0.0
WithSkipper returns an Option that sets the Skipper function in the config. The Skipper function determines whether a request should be skipped for logging.
Parameters:
s (Skipper): A function that takes a gin.Context and returns a boolean indicating
whether the request should be skipped.
Returns:
Option: An option that sets the Skipper function in the config.
func WithUTC ¶ added in v0.1.0
WithUTC returns an Option that sets the utc field in the config. The utc field is a boolean that indicates whether to use UTC time zone or local time zone.
Parameters:
s (bool): A boolean indicating whether to use UTC time zone.
Returns:
Option: An option that sets the utc field in the config.
func WithWriter ¶ added in v0.2.0
WithWriter change the default output writer. Default is gin.DefaultWriter
