目前公司还有很多老项目在weblogic上,正准备把老项目的sso换成基于keycloak,看src的时候,发现keycloak里用的都是jul,想着用logback对接, 至于slf4j, logback, jul 等日志组件的关系和怎样bridge,网络有很多关系图, www.slf4j.org/legacy.html… 官网也有比较详细的说明。
但把各个依赖包加入后,发现还是打不出log (Fine Level) 最后发现两个坑点:
- jre lib下有默认配置,level是info
- 直接把自定义的logging.properties放在web-inf/classes下 对于weblogic是没用的,这个应该由于weblogic classloader层级的关系,说实话很久没搞这类事情,一下子没反应过来 3.通过启动参数指定,-Djava.util.logging.config.file=C:\keycloakdemo\logging.properties 可以工作,但是不能指定bridge hanlder,handlers=org.slf4j.bridge.SLF4JBridgeHandler,同样还是因为classloader层级, SLF4JBridgeHandler在war里,而weblogic system clas loader不会去找war里的class
后续会尝试,是不是能通过weblogic.xml来prefer到 war里的logging.properties...