mirror of
				https://github.com/usememos/memos.git
				synced 2025-11-04 04:16:06 +08:00 
			
		
		
		
	
		
			
				
	
	
		
			67 lines
		
	
	
	
		
			1.6 KiB
		
	
	
	
		
			Go
		
	
	
	
	
	
			
		
		
	
	
			67 lines
		
	
	
	
		
			1.6 KiB
		
	
	
	
		
			Go
		
	
	
	
	
	
// Package log implements a simple logging package.
 | 
						|
package log
 | 
						|
 | 
						|
import (
 | 
						|
	"go.uber.org/zap"
 | 
						|
	"go.uber.org/zap/zapcore"
 | 
						|
)
 | 
						|
 | 
						|
var (
 | 
						|
	// `gl` is the global logger.
 | 
						|
	// Other packages should use public methods such as Info/Error to do the logging.
 | 
						|
	// For other types of logging, e.g. logging to a separate file, they should use their own loggers.
 | 
						|
	gl     *zap.Logger
 | 
						|
	gLevel zap.AtomicLevel
 | 
						|
)
 | 
						|
 | 
						|
// Initializes the global console logger.
 | 
						|
func init() {
 | 
						|
	gLevel = zap.NewAtomicLevelAt(zap.InfoLevel)
 | 
						|
	gl, _ = zap.Config{
 | 
						|
		Level:       gLevel,
 | 
						|
		Development: true,
 | 
						|
		// Use "console" to print readable stacktrace.
 | 
						|
		Encoding:         "console",
 | 
						|
		EncoderConfig:    zap.NewDevelopmentEncoderConfig(),
 | 
						|
		OutputPaths:      []string{"stderr"},
 | 
						|
		ErrorOutputPaths: []string{"stderr"},
 | 
						|
	}.Build(
 | 
						|
		// Skip one caller stack to locate the correct caller.
 | 
						|
		zap.AddCallerSkip(1),
 | 
						|
	)
 | 
						|
}
 | 
						|
 | 
						|
// SetLevel wraps the zap Level's SetLevel method.
 | 
						|
func SetLevel(level zapcore.Level) {
 | 
						|
	gLevel.SetLevel(level)
 | 
						|
}
 | 
						|
 | 
						|
// EnabledLevel wraps the zap Level's Enabled method.
 | 
						|
func EnabledLevel(level zapcore.Level) bool {
 | 
						|
	return gLevel.Enabled(level)
 | 
						|
}
 | 
						|
 | 
						|
// Debug wraps the zap Logger's Debug method.
 | 
						|
func Debug(msg string, fields ...zap.Field) {
 | 
						|
	gl.Debug(msg, fields...)
 | 
						|
}
 | 
						|
 | 
						|
// Info wraps the zap Logger's Info method.
 | 
						|
func Info(msg string, fields ...zap.Field) {
 | 
						|
	gl.Info(msg, fields...)
 | 
						|
}
 | 
						|
 | 
						|
// Warn wraps the zap Logger's Warn method.
 | 
						|
func Warn(msg string, fields ...zap.Field) {
 | 
						|
	gl.Warn(msg, fields...)
 | 
						|
}
 | 
						|
 | 
						|
// Error wraps the zap Logger's Error method.
 | 
						|
func Error(msg string, fields ...zap.Field) {
 | 
						|
	gl.Error(msg, fields...)
 | 
						|
}
 | 
						|
 | 
						|
// Sync wraps the zap Logger's Sync method.
 | 
						|
func Sync() {
 | 
						|
	_ = gl.Sync()
 | 
						|
}
 |