日志
已收录文章:21篇
-
Go 的 log/slog 可以把日志级别过滤交给 HandlerOptions,但固定 Level 与可动态调整的 LevelVar 适用场景不同。本文用 JSONHandler、测试缓冲区和最小示例说明过滤发生在哪里,以及如何验证 DEBUG 是否真的被挡住。228 收藏
-
Python logging.Filter 不只是放行或丢弃日志;当过滤器修改 LogRecord 时,handler 之间可能互相污染上下文。本文用可运行示例拆开过滤边界、复制记录和验证方法。212 收藏
-
用 Go 标准库 log/slog 为请求日志绑定稳定的组级属性,比较 With 与 WithGroup 的差异,并通过并发测试确认字段不会串请求。178 收藏
-
日志轮转后磁盘空间没有下降、旧日志文件仍在增长,常见原因是服务进程还握着旧文件句柄。本文用 copytruncate 与重新打开日志两条路径解释现象,给出安全配置、验证顺序和回滚判断。174 收藏
-
Go 项目从 fmt.Println 走向结构化日志后,标准库 slog、zap 和 zerolog 都能完成 JSON 输出,但默认行为、扩展方式、性能与迁移成本并不一样。本文按项目约束比较三种方案,并给出可落地的选择规则。151 收藏
-
用 log/slog 给请求日志补 request_id 时,WithAttrs 适合固定上下文,Handler 包装适合动态注入。本文用一段可运行示例说明两者的边界、并发安全和验收方法。147 收藏
-
Python 日志重复打印通常不是 logger 调用了两次,而是同一条记录沿父子层级交给多个 handler。本文用最小示例拆开 propagate、handler 和配置初始化顺序,给出可复现的排查与修复方法。139 收藏
-
PHP CLI 脚本明明抛出了异常,shell 或 CI 却拿到 0,通常不是 PHP 没有报错,而是异常、致命错误和 shutdown 回调被混在了一条观测链里。本文从命令行任务现场出发,拆开 Throwable、register_shutdown_function 与退出码的关系,并给出可复现的日志验收方法。133 收藏
-
Docker Desktop 里的服务打不开时,先在 Containers 视图查看 Logs,再到 Inspect 核对镜像、端口映射和状态。本文用一个本地 Web 容器演示从日志关键词到浏览器验收的完整排查路径。113 收藏