package
0.0.0-20240720025851-28b05a40bd25
Repository: https://github.com/openmesh-network/core.git
Documentation: pkg.go.dev
# README
Package Logger
This is the package for logging (based on zap
).
Usage
// Initialise a logger first
logger.InitLogger()
// Use sugared logger
logger.Infof("Message: %s", msg)
// Don't forget to sync your logs when you log to file
defer logger.SyncAll()
Configuration
log:
# development mode is more human-friendly: console encoding and not log to file
development: true
# THE FOLLOWING CONFIGS ONLY WORKS IN THE PRODUCTION MODE (development: false)
# console or json
encoding: console
info:
# whether log to stdout or not
toStdout: true
# whether log to file or not
toFile: true
# path and name of the INFO-level log file
fileName: logs/core-info.log
# maximum size of a single INFO-level log file (megabytes)
maxSize: 10
# how many days old INFO-level log files to retain
maxAge: 7
# how much old INFO-level log files to retain
maxBackups: 10
error:
# whether log to stderr or not
toStderr: true
# whether log to file or not
toFile: true
# path and name of the ERROR-level log file
fileName: logs/core-error.log
# maximum size of a single ERROR-level log file (megabytes)
maxSize: 10
# how many days old ERROR-level log files to retain
maxAge: 7
# how much old ERROR-log files to retain
maxBackups: 10
Supported log levels
From Log levels in Zap:
DEBUG (-1)
:- Usage:
logger.Debug()
orzap.L().Debug()
. - For recording messages useful for debugging.
- Usage:
INFO (0)
:- Usage:
logger.Info()
orzap.L().Info()
. - For messages describing normal application operations.
- Usage:
WARN (1)
:- Usage:
logger.Warn()
orzap.L().Warn()
. - For recording messages indicating something unusual happened that may need attention before it escalates to a more severe issue.
- Usage:
ERROR (2)
:- Usage:
logger.Error()
orzap.L().Error()
- For recording unexpected error conditions in the program.
- Usage:
DPANIC (3)
:- Usage:
logger.DPanic()
orzap.L().DPanic()
. - For recording severe error conditions in development. It behaves like PANIC in development and ERROR in production.
- Usage:
PANIC (4)
:- Usage:
logger.Panic()
orzap.L().Panic()
. - Calls panic() after logging an error condition.
- Usage:
FATAL (5)
:- Usage:
logger.Fatal()
orzap.L().Fatal()
. - Calls os.Exit(1) after logging an error condition.
- Usage:
Sugared logger
Sugared logger is more human-friendly and have a syntax similar to fmt.Print()
and fmt.Printf()
.
// Use sugared logger
logger.Info("This is sugared logger!!!")
logger.Infof("Message: %s", msg)
logger.Errorf("Failed to do bar: %s", err.Error())
Supported formats:
Print()
-like (e.g.,Info()
)Printf()
-like (e.g.,Infof()
)Println()
-like (e.g.,Infoln()
)- Non-sugared logger style (use key-value pairs, e.g.,
Infow()
)
Non-sugared logger
Non-sugared logger has a better performance and is more suitable for performance sensitive scenario.
// Use non-sugared logger
zap.L().Info("This is message", zap.String("key", "value"))
zap.L().Error("Failed to do foo", zap.String("error", err.Error()))
Log format
The following two formats are supported:
json
(default): Default format that is better for parsing and processing. Example:{"level":"info","timestamp":"2024-03-15T12:29:34.657+1100","msg":"This is test logger: INFO level"}
console
: A more human-friendly format. Example:2024-03-15T12:30:13.390+1100 INFO This is test logger: INFO level
# Functions
InitLogger initialise a logger and assign it to the global variables.
SyncAll sync all the files added to the logger.
# Variables
No description provided by the author
No description provided by the author
No description provided by the author
No description provided by the author
No description provided by the author
No description provided by the author
No description provided by the author
No description provided by the author
No description provided by the author
No description provided by the author
No description provided by the author
No description provided by the author
No description provided by the author
No description provided by the author
No description provided by the author
No description provided by the author
No description provided by the author
No description provided by the author
No description provided by the author
No description provided by the author
No description provided by the author
No description provided by the author
No description provided by the author
No description provided by the author
No description provided by the author
No description provided by the author
No description provided by the author
No description provided by the author