温馨提示×

温馨提示×

您好,登录后才能下订单哦!

密码登录×
登录注册×
其他方式登录
点击 登录注册 即表示同意《亿速云用户服务条款》

java Logger 如何设置级别

发布时间:2026-09-12 10:23:03 来源:亿速云 阅读:93 作者:小樊 栏目:编程语言

在 Java 中,常用的日志框架有 java.util.logging(JUL)Log4j / Log4j2SLF4J + Logback 等。下面分别说明如何设置日志级别。


一、java.util.logging(JDK 自带)

1. 代码中设置级别

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");
    }
}

2. 通过配置文件设置

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

二、Log4j 2(常用)

1. 使用 log4j2.xml

<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>

2. 代码中动态设置(不推荐频繁用)

Configurator.setLevel("com.example", Level.DEBUG);

三、SLF4J + Logback(最常用)

1. logback.xml

<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>

2. 代码中设置(需引入 logback-classic)

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

五、常见问题

  1. 设置了 Logger 级别但没生效
    • 通常是 Handler / Appender 级别限制了输出
  2. 框架冲突
    • 检查是否同时存在 log4j、logback、jul

如果你能告诉我 用的是哪种日志框架,我可以给你更精确的示例。

向AI问一下细节

免责声明:本站发布的内容(图片、视频和文字)以原创、转载和分享为主,文章观点不代表本网站立场,如果涉及侵权请联系站长邮箱:is@yisu.com进行举报,并提供相关证据,一经查实,将立刻删除涉嫌侵权内容。

AI