alibaba / druid

阿里云计算平台DataWorks(https://help.aliyun.com/document_detail/137663.html) 团队出品,为监控而生的数据库连接池
https://github.com/alibaba/druid/wiki
Apache License 2.0
27.78k stars 8.55k forks source link

使用非Log4j之外的日志框架时报log4j:WARN No appenders could be found for logger #1781

Open aohujun opened 7 years ago

aohujun commented 7 years ago

完整的日志: log4j:WARN No appenders could be found for logger (com.alibaba.druid.pool.DruidDataSource). log4j:WARN Please initialize the log4j system properly. log4j:WARN See http://logging.apache.org/log4j/1.2/faq.html#noconfig for more info.

可通过设置 -Ddruid.logType=slf4j解决 代码错误貌似是在 String logType= System.getProperty("druid.logType");上

aohujun commented 7 years ago

参考https://github.com/alibaba/druid/issues/1422

这里改了下,https://github.com/alibaba/druid/pull/1768,啥时打包呢

1091662876 commented 7 years ago

是不是顺序调整成slf4j在前会好点呢? 在未配置Ddruid.logType的时候 用slf4j,基于slf4j的大部分需要jcl-over-slf4,log4j-over-slf4j这俩jar,然后logfactory的判断就直接进log4j了

1091662876 commented 7 years ago

不过很奇怪,按说有log4j-over-slf4j就可以运行了啊,不知道logback咋回事,就是不认Druid,其他的都是好的,明天再确认下 对了,在容器启动的时候设置环境变量可正常使用,不过不太喜欢这种做法。

1091662876 commented 7 years ago

用log4j,log4j2八成没slf4j的jar,反之则不然,所以顺序似乎判断命中会更高,而且slf4j是趋势,logback好用多了 slf4j
log4j2 log4j ......

1091662876 commented 7 years ago

可以,我这解决了,我一个个jar找,发现有个jar把log4j给集成进去了,把集成的干掉就OK了

1091662876 commented 7 years ago

对了,还需要 log4j-over-slf4j,我用的是logback 基于slf4j接口,刚从log4j升级的

aohujun commented 7 years ago

logj1.x在高并发下有bug的,不要在程序中直接使用log1.x 的Logger

1091662876 commented 7 years ago

没的,现在都是slf4j, 用的logbakc

glenn2wang commented 6 years ago

-Ddruid.logType=slf4j -Ddruid.logType=log4j -Ddruid.logType=log4j2 -Ddruid.logType=commonsLog -Ddruid.logType=jdkLog

这不能做到参数配置里吗?必须到JVM的参数里