温馨提示×

怎样配置CentOS Java日志

小樊
41
2026-07-08 22:59:36
栏目: 编程语言

在 CentOS 上配置 Java 日志,通常取决于你使用的 Java 应用类型日志框架。下面按常见场景给你一套从基础到实战的配置说明。


一、确认 Java 环境(CentOS)

java -version

如果未安装:

sudo yum install java-1.8.0-openjdk-devel -y

二、常见 Java 日志框架

框架 说明
JUL(java.util.logging) JDK 自带
Log4j / Log4j2 最常用
Logback Spring Boot 默认
SLF4J 日志门面

下面分别说明配置方式。


三、Log4j / Log4j2 配置(最常见)

1️⃣ Log4j2 示例(推荐)

文件:log4j2.xml

<?xml version="1.0" encoding="UTF-8"?>
<Configuration status="INFO">
    <Appenders>
        <Console name="Console" target="SYSTEM_OUT">
            <PatternLayout pattern="%d{yyyy-MM-dd HH:mm:ss} %-5p %c{1} - %m%n"/>
        </Console>

        <RollingFile name="File" fileName="/var/log/myapp/app.log"
                     filePattern="/var/log/myapp/app-%d{yyyy-MM-dd}.log.gz">
            <PatternLayout>
                <Pattern>%d{yyyy-MM-dd HH:mm:ss} %-5p %c - %m%n</Pattern>
            </PatternLayout>
            <Policies>
                <TimeBasedTriggeringPolicy interval="1"/>
            </Policies>
            <DefaultRolloverStrategy max="30"/>
        </RollingFile>
    </Appenders>

    <Loggers>
        <Root level="INFO">
            <AppenderRef ref="Console"/>
            <AppenderRef ref="File"/>
        </Root>
    </Loggers>
</Configuration>

放置位置

  • Spring Boot:src/main/resources/log4j2.xml
  • 普通 Java 项目:classpath 根目录

2️⃣ 启动参数指定配置文件(可选)

java -Dlog4j2.configurationFile=/etc/myapp/log4j2.xml -jar app.jar

四、Logback 配置(Spring Boot 默认)

文件:logback.xml

<configuration>
    <property name="LOG_PATH" value="/var/log/myapp"/>

    <appender name="FILE" class="ch.qos.logback.core.rolling.RollingFileAppender">
        <file>${LOG_PATH}/app.log</file>
        <rollingPolicy class="ch.qos.logback.core.rolling.TimeBasedRollingPolicy">
            <fileNamePattern>${LOG_PATH}/app.%d{yyyy-MM-dd}.log</fileNamePattern>
            <maxHistory>30</maxHistory>
        </rollingPolicy>
        <encoder>
            <pattern>%d{yyyy-MM-dd HH:mm:ss} %-5level %logger - %msg%n</pattern>
        </encoder>
    </appender>

    <root level="INFO">
        <appender-ref ref="FILE"/>
    </root>
</configuration>

五、JUL(java.util.logging)配置

文件:logging.properties

handlers=java.util.logging.FileHandler, java.util.logging.ConsoleHandler
.level=INFO

java.util.logging.FileHandler.pattern=/var/log/myapp/app.log
java.util.logging.FileHandler.limit=10485760
java.util.logging.FileHandler.count=10
java.util.logging.FileHandler.formatter=java.util.logging.SimpleFormatter

启动参数

java -Djava.util.logging.config.file=/etc/myapp/logging.properties -jar app.jar

六、CentOS 系统级日志配置建议

✅ 日志目录权限

sudo mkdir -p /var/log/myapp
sudo chown appuser:appuser /var/log/myapp

✅ 避免日志写满磁盘

  • 开启日志滚动(Log4j2 / Logback 已支持)
  • 设置 maxHistorymax

七、与 systemd 配合使用(推荐)

1️⃣ 服务文件示例

[Unit]
Description=My Java App
After=network.target

[Service]
User=appuser
ExecStart=/usr/bin/java -jar /opt/app/app.jar
SuccessExitStatus=143
Restart=always

[Install]
WantedBy=multi-user.target

2️⃣ 查看日志

journalctl -u myapp -f

八、常见问题排查

❓ 日志不输出

  • 配置文件是否在 classpath
  • 是否有权限写日志目录
  • 日志级别是否过高(ERROR 看不到 INFO)

❓ 中文乱码

-Dfile.encoding=UTF-8

九、你适合哪种配置?

场景 推荐
Spring Boot Logback
传统 Java 项目 Log4j2
简单程序 JUL
生产环境 Log4j2 + systemd

如果你愿意,可以告诉我:

  • ✅ 是否 Spring Boot
  • ✅ CentOS 7 还是 8 / 9
  • ✅ 日志输出到文件还是 systemd

我可以给你一份完全可直接用的配置模板

0