logmonitor

package
v0.1.4-beta.5 Latest Latest
Warning

This package is not in the latest version of its module.

Go to latest
Published: Dec 14, 2023 License: BSD-3-Clause Imports: 4 Imported by: 0

Documentation

Overview

Package logmonitor provides logging utilities for a web application. It leverages the zap logging library to offer structured, leveled logging. The package is designed to integrate with the Gin web framework and includes middleware that logs incoming HTTP requests, including response status, method, path, and the time taken to process each request.

The logger is initialized with a development-friendly configuration that outputs logs in a human-readable, color-coded format, suitable for development and debugging. The RequestLogger middleware can be easily added to a Gin router to enhance request logging with detailed information that can help in monitoring and troubleshooting.

Example:

func main() {
    router := gin.Default()
    router.Use(logmonitor.RequestLogger())
    // ... other middlewares and routes ...
    router.Run(":8080")
}

It is important to call the Logger.Sync() method when the application exits to flush any buffered log entries. This is typically done in the main function using a defer statement.

Example:

func main() {
    defer func() {
        if err := logmonitor.Logger.Sync(); err != nil {
            fmt.Fprintf(os.Stderr, "Failed to flush log: %v\n", err)
        }
    }()
    // ... rest of the main function ...
}

Copyright (c) 2023 H0llyW00dzZ

Index

Constants

This section is empty.

Variables

View Source
var Logger *zap.Logger

Logger is a global variable to access the zap logger throughout the logmonitor package.

Functions

func RequestLogger

func RequestLogger() gin.HandlerFunc

RequestLogger returns a gin.HandlerFunc (middleware) that logs requests using zap. It is intended to be used as a middleware in a Gin router setup.

Upon receiving a request, it logs the following information:

  • HTTP status code of the response
  • HTTP method of the request
  • Requested path
  • Duration taken to process the request

The logs are output in a structured format, making them easy to read and parse.

Types

This section is empty.

Jump to

Keyboard shortcuts

? : This menu
/ : Search site
f or F : Jump to
y or Y : Canonical URL