在 Java 中,常用的日志框架有 java.util.logging(JUL)、Log4j / Log4j2、SLF4J + Logback 等。下面分别说明如何设置日志级别。
import java.util.logging.*;
public class Demo {
public static void main(String[] args) {
Logger logger = Logger.getLogger("com.example");
logger.setLevel(Level.FINE);
// 控制台 Handler 也要设置级别
ConsoleHandler handler = new ConsoleHandler();
handler.setLevel(Level.FINE);
logger.addHandler(handler);
logger.setUseParentHandlers(false); // 避免重复输出
logger.fine("fine log");
logger.info("info log");
}
}
logging.properties 示例:
handlers=java.util.logging.ConsoleHandler
.level=INFO
java.util.logging.ConsoleHandler.level=FINE
com.example.level=FINE
启动时指定:
java -Djava.util.logging.config.file=logging.properties Demo
<Configuration status="WARN">
<Appenders>
<Console name="Console" target="SYSTEM_OUT">
<PatternLayout pattern="%d %p %c - %m%n"/>
</Console>
</Appenders>
<Loggers>
<Logger name="com.example" level="debug"/>
<Root level="info">
<AppenderRef ref="Console"/>
</Root>
</Loggers>
</Configuration>
Configurator.setLevel("com.example", Level.DEBUG);
<configuration>
<appender name="STDOUT" class="ch.qos.logback.core.ConsoleAppender">
<encoder>
<pattern>%d %level %logger - %msg%n</pattern>
</encoder>
</appender>
<logger name="com.example" level="DEBUG"/>
<root level="INFO">
<appender-ref ref="STDOUT"/>
</root>
</configuration>
import ch.qos.logback.classic.Logger;
import org.slf4j.LoggerFactory;
Logger logger = (Logger) LoggerFactory.getLogger("com.example");
logger.setLevel(ch.qos.logback.classic.Level.DEBUG);
OFF > FATAL > ERROR > WARN > INFO > DEBUG > TRACE > ALL
如果你能告诉我 用的是哪种日志框架,我可以给你更精确的示例。
免责声明:本站发布的内容(图片、视频和文字)以原创、转载和分享为主,文章观点不代表本网站立场,如果涉及侵权请联系站长邮箱:is@yisu.com进行举报,并提供相关证据,一经查实,将立刻删除涉嫌侵权内容。