ubuntu

Ubuntu Java编译时日志输出怎么配置

小樊
41
2025-08-17 16:06:16
栏目: 编程语言

在Ubuntu上配置Java编译时的日志输出,可通过以下方式实现:

一、使用内置日志框架(java.util.logging)

  1. 创建配置文件
    在项目根目录创建logging.properties文件,配置日志级别和输出目标(控制台/文件):

    handlers=java.util.logging.ConsoleHandler, java.util.logging.FileHandler
    java.util.logging.ConsoleHandler.level=INFO
    java.util.logging.ConsoleHandler.formatter=java.util.logging.SimpleFormatter
    java.util.logging.FileHandler.level=WARNING
    java.util.logging.FileHandler.pattern=build.log
    java.util.logging.FileHandler.formatter=java.util.logging.SimpleFormatter
    
  2. 启动时指定配置文件
    编译时通过JVM参数加载配置:

    javac -Djava.util.logging.config.file=logging.properties YourJavaFile.java
    

二、使用第三方日志框架(以Log4j2为例)

  1. 添加依赖
    pom.xml中添加Log4j2依赖(Maven项目):

    <dependency>
        <groupId>org.apache.logging.log4j</groupId>
        <artifactId>log4j-core</artifactId>
        <version>2.x.x</version>
    </dependency>
    
  2. 创建配置文件
    src/main/resources目录下创建log4j2.xml,配置日志输出格式和级别:

    <Configuration>
        <Appenders>
            <Console name="Console" target="SYSTEM_OUT">
                <PatternLayout pattern="%d{HH:mm:ss} [%t] %-5level %logger{36} - %msg%n"/>
            </Console>
            <File name="File" fileName="build.log">
                <PatternLayout pattern="%d{yyyy-MM-dd HH:mm:ss} %-5p %c{1}:%L - %m%n"/>
            </File>
        </Appenders>
        <Loggers>
            <Root level="info">
                <AppenderRef ref="Console"/>
                <AppenderRef ref="File"/>
            </Root>
        </Loggers>
    </Configuration>
    
  3. 代码中使用日志

    import org.apache.logging.log4j.LogManager;
    import org.apache.logging.log4j.Logger;
    
    public class Main {
        private static final Logger logger = LogManager.getLogger(Main.class);
        public static void main(String[] args) {
            logger.info("编译开始");
            // 编译逻辑
            logger.warn("警告信息");
            logger.error("错误信息");
        }
    }
    

三、编译时日志级别控制

四、查看编译日志

参考来源

0
看了该问题的人还看了