logs

package module
v1.0.2 Latest Latest
Warning

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

Go to latest
Published: Jul 21, 2025 License: BSD-3-Clause Imports: 5 Imported by: 1

README

Logs Package

Go Reference License

A simple, flexible, and thread-safe logging system for Go applications.

Features

  • Thread-safe logging with mutex protection
  • Multiple log levels (None, Debug, Info, Warn, Error, Event)
  • Customizable minimum log level
  • Colored terminal output (optional)
  • Custom timestamp formatting
  • Standard library compatibility through log.Logger adapter

Installation

go get github.com/NodePassProject/logs

Usage

Basic Usage
package main

import (
    "github.com/NodePassProject/logs"
)

func main() {
    // Create a new logger with INFO minimum level and color enabled
    logger := logs.NewLogger(logs.Info, true)

    // Create a logger that disables all log output
    silentLogger := logs.NewLogger(logs.None, true)
    silentLogger.Info("This will not be printed")

    // Log messages at different levels
    logger.Debug("This debug message won't be shown because minimum level is INFO")
    logger.Info("System started successfully")
    logger.Warn("Configuration file not found, using defaults")
    logger.Error("Failed to connect to database: %s", "connection timeout")
    logger.Event("System event: application state changed")
}
Changing Log Level at Runtime
// Create logger with INFO level
logger := logs.NewLogger(logs.Info, true)

// Later change to DEBUG level
logger.SetLogLevel(logs.Debug)

// Disable all log output
logger.SetLogLevel(logs.None)

// Get current log level
currentLevel := logger.GetLogLevel()
Disabling Colors
logger := logs.NewLogger(logs.Info, true)

// Disable colored output
logger.EnableColor(false)
Using with Standard Library
logger := logs.NewLogger(logs.Info, true)

// Get a standard library logger that uses our custom logger
stdLogger := logger.StdLogger()

// Use standard logger methods
stdLogger.Println("This message will be logged through our custom logger")
stdLogger.Printf("Formatted %s", "message")

License

Copyright (c) 2025, NodePassProject. Licensed under the BSD 3-Clause License. See the LICENSE file for details.

Documentation

Overview

Package logs 提供了一个简单、灵活且线程安全的日志记录系统。

Index

Constants

This section is empty.

Variables

This section is empty.

Functions

This section is empty.

Types

type LogLevel

type LogLevel int

LogLevel 表示日志级别的枚举类型

const (
	None  LogLevel = iota // 无日志输出
	Debug                 // 调试级别
	Info                  // 信息级别
	Warn                  // 警告级别
	Error                 // 错误级别
	Event                 // 事件级别
)

定义不同的日志级别常量

type Logger

type Logger struct {
	// contains filtered or unexported fields
}

Logger 是自定义的日志记录器结构体

func NewLogger

func NewLogger(logLevel LogLevel, enableColor bool) *Logger

NewLogger 创建并返回一个新的Logger实例

func (*Logger) Debug

func (l *Logger) Debug(format string, v ...any)

Debug 输出调试级别的日志

func (*Logger) EnableColor

func (l *Logger) EnableColor(enable bool)

EnableColor 设置是否启用彩色输出

func (*Logger) Error

func (l *Logger) Error(format string, v ...any)

Error 输出错误级别的日志

func (*Logger) Event added in v1.0.1

func (l *Logger) Event(format string, v ...any)

Event 输出事件级别的日志

func (*Logger) GetLogLevel

func (l *Logger) GetLogLevel() LogLevel

GetLogLevel 获取当前的最小日志级别

func (*Logger) Info

func (l *Logger) Info(format string, v ...any)

Info 输出信息级别的日志

func (*Logger) SetLogLevel

func (l *Logger) SetLogLevel(logLevel LogLevel)

SetLogLevel 设置最小日志级别

func (*Logger) StdLogger

func (l *Logger) StdLogger() *log.Logger

StdLogger 返回一个标准库日志实例,它将使用当前Logger输出日志

func (*Logger) Warn

func (l *Logger) Warn(format string, v ...any)

Warn 输出警告级别的日志

Jump to

Keyboard shortcuts

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