在 CentOS 上“配置 Java 日志路径”通常分几种情况,取决于你用的是哪种 Java 应用/框架。下面按常见场景给你说明。
如果是自己写的 Java 程序,日志路径通常由代码或日志框架配置决定。
java -Dlog.path=/var/log/myapp \
-jar myapp.jar
在 log4j2.xml 或 logback.xml 中使用:
<property name="LOG_PATH" value="${log.path:-./logs}"/>
<configuration>
<property name="LOG_HOME" value="/var/log/myapp"/>
<appender name="FILE" class="ch.qos.logback.core.rolling.RollingFileAppender">
<file>${LOG_HOME}/app.log</file>
<rollingPolicy class="ch.qos.logback.core.rolling.TimeBasedRollingPolicy">
<fileNamePattern>${LOG_HOME}/app.%d{yyyy-MM-dd}.log</fileNamePattern>
</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>
✅ 确保目录存在:
mkdir -p /var/log/myapp
chown -R youruser:youruser /var/log/myapp
<Configuration>
<Properties>
<Property name="LOG_PATH">/var/log/myapp</Property>
</Properties>
<Appenders>
<RollingFile name="File" fileName="${LOG_PATH}/app.log"
filePattern="${LOG_PATH}/app-%d{yyyy-MM-dd}.log">
<PatternLayout pattern="%d %p %c{1.} %m%n"/>
<TimeBasedTriggeringPolicy/>
</RollingFile>
</Appenders>
<Loggers>
<Root level="info">
<AppenderRef ref="File"/>
</Root>
</Loggers>
</Configuration>
编辑:
vi /opt/tomcat/conf/logging.properties
示例:
1catalina.org.apache.juli.AsyncFileHandler.directory = /var/log/tomcat
并修改 catalina.sh 或 setenv.sh:
export CATALINA_OUT=/var/log/tomcat/catalina.out
如果你用 systemd 启动 Java:
vi /etc/systemd/system/myapp.service
[Service]
Environment="LOG_PATH=/var/log/myapp"
ExecStart=/usr/bin/java -jar /opt/myapp.jar
systemctl daemon-reload
systemctl restart myapp
✅ 日志目录必须存在
✅ 运行 Java 的用户要有写权限
✅ SELinux 可能拦截(CentOS 常见):
setenforce 0 # 临时关闭测试
或添加 SELinux 策略
如果你能告诉我:
我可以给你完全对应的配置示例。