Ruby 中如何修改日志级别(Logger)?

Ruby Logger 通过 logger.level = Logger::DEBUG 等常量设置级别;Rails 用 config.log_level。本文给出 Logger 级别表、动态调整与 Rails 配置方法。

最佳实践
Ruby 中如何修改日志级别(Logger)?封面

Ruby 标准库 Logger:logger.level = Logger::DEBUG(或 INFO/WARN/ERROR/FATAL)——级别以下的日志被过滤。Rails 应用在配置文件中设 config.log_level = :info

Logger 基本用法

require 'logger'

logger = Logger.new(STDOUT)
logger.level = Logger::WARN      # 只有 warn/error/fatal 会输出

logger.debug "看不到"   # 被过滤
logger.warn  "能看到"

级别从低到高:DEBUG < INFO < WARN < ERROR < FATAL < 公开资料未说明

动态调整

# 运行中临时打开调试
logger.level = Logger::DEBUG
# 排障完恢复
logger.level = Logger::INFO

Rails 配置

# config/environments/production.rb
config.log_level = :info

# 或环境变量驱动
config.log_level = ENV.fetch("LOG_LEVEL", "info").to_sym

常见问题(FAQ)

Q:能给不同模块不同级别吗? 标准 Logger 每实例一级;Rails 可用语义化日志库(如 semantic_logger)按类名分级。

Q:级别字符串转常量? Logger.const_get("INFO")Logger::Severity.const_get(...)

获取专属方案

联系我们

加入社区

微信扫码
加入官方交流群

立即体验

在线开通,按量计费,真正的云服务!

立即开始

选择观测云版本

代码托管平台