温馨提示×

CentOS Java日志如何开启

小樊
43
2026-07-20 16:38:20
栏目: 编程语言

CentOS 上“开启 Java 日志”通常指 Java 应用自身日志JVM 运行日志。下面按常见场景给你一份实用指南。


一、Java 应用日志(最常见)

1️⃣ 使用 Log4j / Logback(推荐)

✅ Log4j 2 示例

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>
        <File name="File" fileName="/var/log/myapp/app.log">
            <PatternLayout pattern="%d{yyyy-MM-dd HH:mm:ss} %-5p %c{1} - %m%n"/>
        </File>
    </Appenders>
    <Loggers>
        <Root level="info">
            <AppenderRef ref="Console"/>
            <AppenderRef ref="File"/>
        </Root>
    </Loggers>
</Configuration>

✅ 启动后日志会出现在:

/var/log/myapp/app.log

2️⃣ 使用 JUL(java.util.logging)

logging.properties

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

java.util.logging.FileHandler.pattern = /var/log/myapp/app.log
java.util.logging.FileHandler.formatter = java.util.logging.SimpleFormatter

启动参数:

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

二、JVM 日志(GC / 启动日志)

1️⃣ GC 日志(非常重要)

✅ JDK 8

java -XX:+PrintGCDetails \
     -XX:+PrintGCDateStamps \
     -Xloggc:/var/log/myapp/gc.log \
     -jar app.jar

✅ JDK 9+

java -Xlog:gc*:file=/var/log/myapp/gc.log:time,uptime,level,tags \
     -jar app.jar

✅ 查看 GC 日志:

tail -f /var/log/myapp/gc.log

2️⃣ JVM 错误日志(崩溃日志)

java -XX:ErrorFile=/var/log/myapp/hs_err_pid%p.log \
     -jar app.jar

三、CentOS 系统级日志(systemd)

1️⃣ 使用 systemd 启动 Java 服务

/etc/systemd/system/myapp.service

[Unit]
Description=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

查看日志:

journalctl -u myapp -f

四、日志目录权限(CentOS 常见坑)

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

否则 Java 会 无法写日志


五、快速检查清单 ✅

检查项 命令
Java 是否运行 `ps -ef
日志是否生成 ls /var/log/myapp
是否有权限 namei -l /var/log/myapp
systemd 日志 journalctl -u 服务名 -f

六、如果你愿意,我可以帮你

你可以直接告诉我:

  • JDK 版本(8 / 11 / 17)
  • 启动方式(jar / tomcat / systemd)
  • 想看什么日志(GC / 业务 / 报错)

我可以给你 一份可直接用的完整配置

0