Logback中[o.s]日志前缀含义及日志缺失问题咨询
Logback日志前缀含义及日志缺失问题解决(Spring 5.2.19 + Logback 1.2.10)
一、日志前缀含义
Logback默认会对类的全限定名进行缩写(通过%logger{1}或类似格式配置),取包名各段的首字母组合,以下是各组前缀及对应类的说明:
分组A([o.s]开头)
o.s是org.springframework的缩写,代表Spring核心框架的类:
[o.s.b.f.s.DefaultListableBeanFactory]→ 对应全限定名org.springframework.beans.factory.support.DefaultListableBeanFactory,Spring核心的Bean工厂实现类,负责Bean的注册与实例化[o.s.jndi.JndiPropertySource]→ 对应org.springframework.jndi.JndiPropertySource,Spring中用于从JNDI环境读取配置属性的类[o.springframework.jndi.JndiTemplate]→ 未完全缩写的形式,对应全限定名org.springframework.jndi.JndiTemplate,Spring封装的JNDI操作模板类[o.s.web.context.ContestLoader]→ 应为拼写错误,正确类名是ContextLoader,对应org.springframework.web.context.ContextLoader,Spring Web应用的上下文加载器
分组B
这类前缀对应Spring生态中第三方框架整合的类:
[o.m.spring.SqlSessionFactoryBean]→ 对应org.mybatis.spring.SqlSessionFactoryBean,MyBatis与Spring整合的核心类,用于创建SqlSessionFactory[o.m.s.t.SpringManagedTransaction]→ 对应org.mybatis.spring.transaction.SpringManagedTransaction,MyBatis整合Spring事务的管理类[o.a.v.spring.SpringResourceLoader]→ 对应org.apache.velocity.spring.SpringResourceLoader,Apache Velocity模板引擎与Spring整合的资源加载器
二、[o.s]日志缺失问题解决方法
同一份war包部署后一台服务器不输出Spring核心框架日志,排查方向如下:
核对Logback配置文件一致性
确认两台服务器加载的是同一套Logback配置(logback.xml/logback-spring.xml):- 检查是否存在环境变量/系统属性指定了不同的配置文件路径(如
-Dlogback.configurationFile) - 确认war包解压后
WEB-INF/classes下的配置文件是否一致,避免部署时的配置替换
- 检查是否存在环境变量/系统属性指定了不同的配置文件路径(如
检查Spring包的日志级别配置
查看配置中org.springframework的日志级别:- 若某台服务器配置了
<logger name="org.springframework" level="OFF"/>或level="ERROR",会屏蔽INFO/DEBUG级别的Spring日志,需调整为level="INFO"或level="DEBUG"(根据需求)
- 若某台服务器配置了
排查应用服务器的日志配置干扰
若使用Tomcat等应用服务器,检查服务器自身的日志配置(如conf/logging.properties),避免其覆盖应用的Logback配置,导致Spring日志被过滤验证日志输出规则
确认配置中的appender是否对Spring日志做了过滤规则,比如是否设置了只输出特定包的日志,排除了org.springframework
内容的提问来源于stack exchange,提问作者Jongbum Lee
相关产品推荐
相关产品推荐

