info日志在控制台不打印

# 日志输出级别(INFO)和输出位置(stdout,R)
log4j.rootLogger=INFO,WARN,DAILY_ALL,CONSOLE  // 不加info 控制台不打印

# 日志输出位置为控制台
log4j.appender.CONSOLE=org.apache.log4j.ConsoleAppender
log4j.appender.CONSOLE.layout=org.apache.log4j.PatternLayout
log4j.appender.CONSOLE.layout.ConversionPattern=%d{yyyy-MM-dd HH:mm:ss} [%t] %-5p %c - %m%n

Java 中 logger 在控制台日志打印出来,可从以下方面着手解决: ### 日志级别配置问题 要保证日志级别配置合理,只有日志级别高于或等于配置的阈值,日志才会输出。例如在 log4j 配置里,可设置输出 DEBUG 级别以上的日志: ```properties log4j.appender.D=org.apache.log4j.DailyRollingFileAppender log4j.appender.D.File=logs/log.log log4j.appender.D.Append=true log4j.appender.D.Threshold=DEBUG log4j.appender.D.layout=org.apache.log4j.PatternLayout log4j.appender.D.layout.ConversionPattern=%-d{yyyy-MM-dd HH:mm:ss}[%t:%r]-[%p]%m%n ``` 此配置指定输出 DEBUG 级别以上的日志,若代码里使用 `logger.debug` 输出日志,且配置的阈值为 INFO,那么 DEBUG 级别的日志输出。把阈值调整为 DEBUG 可解决该问题[^4]。 ### 日志框架配置文件问题 若使用 logback 框架,要确保配置文件正确。比如要避免 zookeeper 打印 debug 日志,可在 resource 下新建 logback.xml 文件,配置如下: ```xml <?xml version="1.0" encoding="UTF-8"?> <!--防止zookeeper打印debug日志 --> <configuration> <appender name="FILE" class="ch.qos.logback.core.rolling.RollingFileAppender"> <rollingPolicy class="ch.qos.logback.core.rolling.TimeBasedRollingPolicy"> <!-- Daily rollover --> <fileNamePattern>/D/Log/ro.%d{yyyy-MM-dd}.log</fileNamePattern> <!-- Keep 7 days' worth of history --> <maxHistory>7</maxHistory> </rollingPolicy> <encoder> <pattern>%d{HH:mm:ss.SSS} [%thread] %-5level %logger{36} - %msg%n</pattern> </encoder> </appender> <!-- Configure so that it outputs to both console and log file --> <root level="INFO"> <appender-ref ref="FILE" /> </root> </configuration> ``` 此配置把日志输出到文件,同时设置根日志级别为 INFO。若想在控制台输出,可添加控制台输出的 appender 配置[^1]。 ### 日志框架初始化问题 要确保日志框架正确初始化。部分日志框架需要在代码里手动初始化,若未正确初始化,日志可能无法输出。例如使用 htmlunit 时,可通过以下代码禁止日志输出,若想恢复日志输出,需调整日志级别: ```java import org.slf4j.LoggerFactory; import ch.qos.logback.classic.Logger; import ch.qos.logback.classic.Level; import ch.qos.logback.classic.LoggerContext; static { LoggerContext loggerContext = (LoggerContext) LoggerFactory.getILoggerFactory(); java.util.List<ch.qos.logback.classic.Logger> loggerList = loggerContext.getLoggerList(); loggerList.forEach(logger -> { logger.setLevel(Level.INFO); // 将日志级别设置为 INFO 或其他合适的级别 }); } ``` 此代码把所有日志的级别设置为 OFF,若要恢复日志输出,可把级别调整为合适的值,如 INFO 或 DEBUG[^3]。 ### 代码中日志调用问题 要确保代码里正确调用了日志方法。例如使用 `logger.info` 输出日志,要保证 `logger` 对象已正确初始化,且代码里没有异常导致日志方法未被执行。
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
红包 添加红包
表情包 插入表情
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值