在 CentOS 上“开启 Java 日志”通常指 Java 应用自身日志 或 JVM 运行日志。下面按常见场景给你一份实用指南。
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
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
java -XX:+PrintGCDetails \
-XX:+PrintGCDateStamps \
-Xloggc:/var/log/myapp/gc.log \
-jar app.jar
java -Xlog:gc*:file=/var/log/myapp/gc.log:time,uptime,level,tags \
-jar app.jar
✅ 查看 GC 日志:
tail -f /var/log/myapp/gc.log
java -XX:ErrorFile=/var/log/myapp/hs_err_pid%p.log \
-jar app.jar
/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
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 |
你可以直接告诉我:
我可以给你 一份可直接用的完整配置。