Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/linux/23.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Java Spring引导Linux服务日志文件_Java_Linux_Spring Boot_Jar - Fatal编程技术网

Java Spring引导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

我有一个spring boot uber/fat jar,它被设置为linux服务,并开始使用以下命令

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