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 WithMessage(message string) 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 WithSpecificLogLevelByStatusCode(statusCodes map[int]zerolog.Level) 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
GetLogger 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 EventFn ¶ added in v1.2.2
EventFn is a function type that takes a gin.Context and a zerolog.Event as parameters, and returns a zerolog.Event. It is typically used to modify or enhance the event within the context of a Gin HTTP request.
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 returns an Option that sets the clientErrorLevel field in the config. The clientErrorLevel field specifies the logging level for requests with status codes between 400 and 499.
Parameters:
lvl - The logging level to be used for requests with status codes between 400 and 499.
Returns:
Option - An option that sets the clientErrorLevel field in the config.
func WithContext ¶ added in v1.2.2
WithContext returns an Option that sets the context field in the config. The context field is a function that 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:
Option - An option that sets the context field in the config.
func WithDefaultLevel ¶ added in v0.2.2
WithDefaultLevel returns an Option that sets the defaultLevel field in the config. The defaultLevel field specifies the logging level for requests with status codes less than 400.
Parameters:
lvl - The logging level to be used for requests with status codes less than 400.
Returns:
Option - An option that sets the defaultLevel field in the config.
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 - 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 WithMessage ¶ added in v1.2.4
WithMessage returns an Option that sets the message field in the config. The message field specifies a custom log message to be used when an HTTP request has finished and is logged.
Parameters:
message - The custom log message.
Returns:
Option - An option that sets the message field in the config.
func WithPathLevel ¶ added in v1.0.0
WithPathLevel returns an Option that sets the pathLevels field in the config. The pathLevels field is a map that associates specific URL paths with logging levels.
Parameters:
m - A map where the keys are URL paths and the values are zerolog.Level.
Returns:
Option - An option that sets the pathLevels field in the config.
func WithServerErrorLevel ¶ added in v0.2.2
WithServerErrorLevel returns an Option that sets the serverErrorLevel field in the config. The serverErrorLevel field specifies the logging level for server errors.
Parameters:
lvl - The logging level to be used for server errors.
Returns:
Option - An option that sets the serverErrorLevel field in the config.
func WithSkipPath ¶ added in v0.1.0
WithSkipPath returns an Option that sets the skipPath field in the config. The skipPath field is a list of URL paths to be skipped from logging.
Parameters:
s - A list of URL paths to be skipped from logging.
Returns:
Option - An option that sets the skipPath field in the config.
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 - 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 - 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 WithSpecificLogLevelByStatusCode ¶ added in v1.2.5
WithSpecificLogLevelByStatusCode returns an Option that sets the specificLevelByStatusCode field in the config. The specificLevelByStatusCode field is a map that associates specific HTTP status codes with logging levels.
Parameters:
statusCodes - A map where the keys are HTTP status codes and the values are zerolog.Level.
Returns:
Option - An option that sets the specificLevelByStatusCode field 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 - 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 returns an Option that sets the output field in the config. The output field is an io.Writer that specifies the destination for log output.
Parameters:
s - The writer to be used for log output.
Returns:
Option - An option that sets the output field in the config.