Files
selfrelease 65dc805eb5 feat: 系统优化 - ESLint、Tailwind、前端健壮性、后端工程化、运维可观测性
- 前端: ESLint+Prettier配置、Tailwind v4配置、ErrorBoundary、全局AuthLoader优化、ReactQuery分层
- 后端: MinIO凭证移除、Docker统一为govai品牌、zerolog日志封装、错误码枚举、文件上传校验、单元测试(13项全通过)
- 运维: 健康检查增强(PG/Redis ping)、Prometheus指标(/metrics端点)、多租户tenant包、RateLimit nil防御
- 移动: citation_prompt.txt → internal/assets/
2026-06-23 14:48:31 +08:00

62 lines
946 B
Go

package logger
import (
"io"
"os"
"time"
"github.com/rs/zerolog"
)
var log zerolog.Logger
func Init(level string, jsonFormat bool) {
var output io.Writer = os.Stdout
if !jsonFormat {
output = zerolog.ConsoleWriter{
Out: os.Stdout,
TimeFormat: time.RFC3339,
}
}
lvl, err := zerolog.ParseLevel(level)
if err != nil {
lvl = zerolog.InfoLevel
}
log = zerolog.New(output).
Level(lvl).
With().
Timestamp().
Caller().
Logger()
}
func Get() *zerolog.Logger {
return &log
}
// Info/fatal/warn/error 等直接透传
func Info() *zerolog.Event {
return log.Info()
}
func Warn() *zerolog.Event {
return log.Warn()
}
func Error() *zerolog.Event {
return log.Error()
}
func Debug() *zerolog.Event {
return log.Debug()
}
func Fatal() *zerolog.Event {
return log.Fatal()
}
func Ctx(ctx interface{ Value(key interface{}) interface{} }) zerolog.Logger {
return log.With().Interface("ctx", ctx).Logger()
}