Categorygithub.com/gwaylib/log
modulepackage
0.0.2
Repository: https://github.com/gwaylib/log.git
Documentation: pkg.go.dev

# README

Using gwaylib/log

The number of logs should not be too many in the release program, which may affect the program performance.
In the call, the logger adopts the function of asynchronous cache to improve the execution efficiency of the log. The cache value is determined by the adapter implements, and the default is 10 items cache.
The log should be closed after use to ensure that the cached data can be output. If the cached data cannot be output, the error will be transferred by the adapter.

About using log level

DEBUG
Debugging information, output only during debugging.
It is controlled by the platform and can be output to the console, which is equivalent to fmt.Print output.

INFO
Program running status change information.
Such as start, stop, reconnection and other information, which reflects the change state of the program environment.

WARN
Program exception information.
This category does not affect the continued use of the program, but its results may lead to potential major problems.
For example: some unknown errors; Network connection error (but it can be repaired automatically after reconnection), connection timeout, etc.
If there are too many such exceptions in a period of time, the causes should be analyzed, such as possible problems:
Being attacked, hardware aging, hardware reaching the upper limit of bearing capacity, abnormal service of the other party, etc.
The log adapter recommends sending an email to relevant personnel.

ERROR
Program fatal error message.
This error will affect the normal logic, and even the platform panic and stop the service.
For example, behaviors that need to be handled in time, such as database unavailable, recharge unavailable, SMS unavailable, and Vos unavailable, can be defined as this category.
The log adapter recommends sending an email, real-time SMS or telephone (or other real-time contact information) to notify relevant personnel.

FATAL
The program ended abnormally.
The log adapter recommends calling all real-time contact information and contacting relevant personnel for processing.

Default use case:

import (
  "github.com/gwaylib/log"
)

func main() {
  log.Info("OK")
}

Custom a logger

import (
  "github.com/gwaylib/log"
  "github.com/gwaylib/logger"
)

var lg *logger.Log

func init() {
  // make a custom logger 
  level, _ := strconv.Atoi(os.Getenv(log.GWAYLIB_LOG_LEVEL))
  adapter := []logger.Adapter{stdio.New(os.Stdout)}
  callerDepth := 4 // if callerDepth == 0, close the file path caller

  // replace the default logger
  log.Log = logger.New(&logger.DefaultContext, "appname", callerDepth, proto.Level(level), adapter...)

  // or
  // make a new package log
  lg = logger.New(&logger.DefaultContext, "appname", callerDepth, proto.Level(level), adapter...)

  // or
  // make a new package default log
  //lg = logger.NewDefaultLogger(loggerName, adapter...)

  // or 
  // copy the log.go file in local and fix it
}

func main() {
  log.Info("OK")
  lg.Info("OK")
}

# Packages

No description provided by the author
No description provided by the author
No description provided by the author

# Functions

Debug level, for developer println the debug message.
No description provided by the author
Error level, for status is error, need someone process the erorr, system refuse the service, but it still can be run.
No description provided by the author
Exit the program with message log.
Fatal level, the status is fatal, if continue run the program, it will cause irreparable things The Log system should call the mainter immediately.
No description provided by the author
Information level, for status changed Example: boot, stop, reconnect, which changed the program enviroment.
No description provided by the author
No description provided by the author
Same as Fatal.
No description provided by the author
Same as Info, golang log interface.
Same as Infof, golang log interface.
Same as Info, golang log interface.
Warning level, for status warning, maybe the status should be broken soon, but also maybe auto recover soon.
No description provided by the author

# Constants

Setting the log level 0 debug or above 1 info or above 2 warn or above 3 error or above 4 fatal.

# Variables

No description provided by the author