Java Spring引导Linux服务日志文件
我有一个spring boot uber/fat jar,它被设置为linux服务,并开始使用以下命令Java Spring引导Linux服务日志文件,java,linux,spring-boot,jar,Java,Linux,Spring Boot,Jar,我有一个spring boot uber/fat jar,它被设置为linux服务,并开始使用以下命令 systemctl start servicename spring引导jar具有以下日志文件配置 <?xml version="1.0" encoding="UTF-8"?> <configuration> <include resource="org/springframework/boot/lo
systemctl start servicename
spring引导jar具有以下日志文件配置
<?xml version="1.0" encoding="UTF-8"?>
<configuration>
<include resource="org/springframework/boot/logging/logback/defaults.xml"/>
<property name="LOG_FILE" value="logs/spring.log"/>
<include resource="org/springframework/boot/logging/logback/file-appender.xml"/>
<include resource="org/springframework/boot/logging/logback/console-appender.xml"/>
<property name="SPECIAL_FILE_NAME" value="special"/>
<appender name="SPECIAL_FILE" class="ch.qos.logback.core.rolling.RollingFileAppender">
<encoder>
<pattern>%date{yyyy-MM-dd HH:mm:ss.SSS} [%-10.10thread] %-5level %30.30logger{29}:%-4line %msg%n</pattern>
<charset>utf8</charset>
</encoder>
<file>logs/controller.log</file>
<rollingPolicy class="ch.qos.logback.core.rolling.FixedWindowRollingPolicy">
<fileNamePattern>logs/controller-%i.log</fileNamePattern>
</rollingPolicy>
<triggeringPolicy
class="ch.qos.logback.core.rolling.SizeBasedTriggeringPolicy">
<MaxFileSize>10MB</MaxFileSize>
</triggeringPolicy>
</appender>
<logger name="com.org.app.controller" level="debug" additivity="false">
<appender-ref ref="SPECIAL_FILE"/>
</logger>
<root level="INFO">
<appender-ref ref="FILE"/>
<appender-ref ref="CONSOLE"/>
</root>
</configuration>
但是,启动服务时不会生成日志。有什么想法吗
如果在shell中使用该命令,将生成日志
/usr/bin/java -Xmx256m -jar -Dspring.profiles.active=test /home/appuser/myapp.jar
我甚至尝试在服务文件中添加下面的内容,但没有成功
StandardOutput=/home/appuser/logs/log.log
StandardError=/home/appuser/logs/error.log
任何来这里寻找答案的人都需要这样做 创建一个脚本文件(myapp.sh)并将启动文件的内容放在那里,就像
java -Xmx256m -jar -Dspring.profiles.active=test /home/appuser/myapp.jar
下一步,在服务文件中删除java命令,并像下面这样放置此文件引用
[Unit]
Description=myapp
[Service]
User=appuser
WorkingDirectory=/home/appuser
ExecStart=/usr/bin/java -Xmx256m -jar -Dspring.profiles.active=test /home/appuser/myapp.jar
SuccessExitStatus=143
TimeoutStopSec=10
Restart=on-failure
RestartSec=10
[Install]
WantedBy=multi-user.target
[Unit]
Description=myapp
[Service]
User=appuser
WorkingDirectory=/home/appuser
ExecStart=/home/appuser/myapp.sh
SuccessExitStatus=143
TimeoutStopSec=10
Restart=on-failure
RestartSec=10
[Install]
WantedBy=multi-user.target
chmod +x /home/appuser/myapp.sh
下一步,确保脚本文件具有执行权限,如下所示
[Unit]
Description=myapp
[Service]
User=appuser
WorkingDirectory=/home/appuser
ExecStart=/usr/bin/java -Xmx256m -jar -Dspring.profiles.active=test /home/appuser/myapp.jar
SuccessExitStatus=143
TimeoutStopSec=10
Restart=on-failure
RestartSec=10
[Install]
WantedBy=multi-user.target
[Unit]
Description=myapp
[Service]
User=appuser
WorkingDirectory=/home/appuser
ExecStart=/home/appuser/myapp.sh
SuccessExitStatus=143
TimeoutStopSec=10
Restart=on-failure
RestartSec=10
[Install]
WantedBy=multi-user.target
chmod +x /home/appuser/myapp.sh
就是这样,现在启动你的应用程序,你应该看到日志,对于我的服务,日志是在
/home/appuser/logs