# mylogx **Repository Path**: dn-jinmin/mylogx ## Basic Information - **Project Name**: mylogx - **Description**: No description available - **Primary Language**: Unknown - **License**: Not specified - **Default Branch**: master - **Homepage**: None - **GVP Project**: No ## Statistics - **Stars**: 0 - **Forks**: 0 - **Created**: 2025-09-23 - **Last Updated**: 2025-09-23 ## Categories & Tags **Categories**: Uncategorized **Tags**: None ## README # logx 日志库 Go语言高性能结构化日志库,支持上下文追踪和自定义字段 ```go import "imooc.com/git.imooc.com/logx" ``` ## 功能特性 - 多日志级别:Debug/Info/Warn/Error/Fatal - 结构化日志输出(JSON格式) - 上下文追踪ID支持 - 自定义日志字段 - 调用方代码位置追踪 - 可扩展的日志输出实现 ## 快速开始 ### 安装 ```bash go get imooc.com/git.imooc.com/logx ``` ### 基础使用 ```go // 创建带TraceID的上下文 ctx := logx.WithTraceID(context.Background()) // 记录带上下文的日志 logx.InfoCtx(ctx, "request123", "用户登录成功", logx.Fields{"user_id": 1001, "ip": "192.168.1.1"}) // 快捷方法 logx.InfoLog("order456", "订单创建成功", logx.Fields{"amount": 299.9, "items": 3}) ``` ## API 说明 ### 日志方法 ```go // 带上下文方法 InfoCtx(ctx context.Context, relatedID string, msg ...any) ErrCtx(ctx context.Context, relatedID string, msg ...any) // 带字段的上下文方法 InfoCtxW(ctx context.Context, relatedID, msg string, fields ...Fields) // 快捷方法(无上下文) InfoLog(relatedID, msg string, fields ...Fields) ErrLog(relatedID, msg string, fields ...Fields) ``` ### 配置方法 ```go // 设置自定义日志实现 func SetLogger(logger Logger) // 设置TraceID的context key func SetTraceIDKey(key string) // 生成追踪上下文 func WithTraceID(parent context.Context, traceID ...string) context.Context ``` ## 日志格式示例 ```json { "Time": "2023-07-20T15:04:05.123Z", "Level": "INFO", "Message": "用户登录成功", "FileLine": "main.go:42", "RelatedID": "request123", "TraceID": "TRACE-1658324495000000000", "Fields": { "user_id": 1001, "ip": "192.168.1.1" } } ``` ## 注意事项 1. 日志级别从低到高:Debug < Info < Warn < Error < Fatal 2. 建议在上下文传递中始终使用WithTraceID 3. 字段合并采用后覆盖前的方式 4. 生产环境建议实现自己的Logger接口处理日志