当前位置: 首页 > 知识库问答 >
问题:

Jar服务的日志文件创建问题

华俊弼
2023-03-14

我在RHEL8上部署了一个Spring Boot应用程序。应用程序在特定文件夹中创建日志文件,并根据logback.xml文件中的设置创建文件。

#!/bin/sh 
SERVICE_NAME=My_Service_Name 
PATH_TO_JAR=/usr/Name_of_User/MyJavaApplication.jar 
PID_PATH_NAME=/tmp/My_Service_Name-pid 
case $1 in 
start)
       echo "Starting $SERVICE_NAME ..."
  if [ ! -f $PID_PATH_NAME ]; then 
       java -jar $PATH_TO_JAR      
                   echo $! > $PID_PATH_NAME  
       echo "$SERVICE_NAME started ..."         
  else 
       echo "$SERVICE_NAME is already running ..."
  fi
;;
stop)
  if [ -f $PID_PATH_NAME ]; then
         PID=$(cat $PID_PATH_NAME);
         echo "$SERVICE_NAME stoping ..." 
         kill $PID;         
         echo "$SERVICE_NAME stopped ..." 
         rm $PID_PATH_NAME       
  else          
         echo "$SERVICE_NAME is not running ..."   
  fi    
;;    
restart)  
  if [ -f $PID_PATH_NAME ]; then 
      PID=$(cat $PID_PATH_NAME);    
      echo "$SERVICE_NAME stopping ..."; 
      kill $PID;           
      echo "$SERVICE_NAME stopped ...";  
      rm $PID_PATH_NAME     
      echo "$SERVICE_NAME starting ..."  
      java -jar $PATH_TO_JAR             
      echo $! > $PID_PATH_NAME  
      echo "$SERVICE_NAME started ..."    
  else           
      echo "$SERVICE_NAME is not running ..."    
     fi     ;;
 esac
java -jar $PATH_TO_JAR
 nohup java -jar $PATH_TO_JAR /tmp 2>> /dev/null >>/dev/null &

如果我不使用这个脚本,而是从终端(如java-jar myapplication.jar)运行应用程序,那么日志文件就会在所需的位置创建。

共有1个答案

宦砚
2023-03-14
nohup java -jar $PATH_TO_JAR </dev/null >/dev/null 2>&1 &

有关更多信息,请参阅以下内容

如何使用nohup命令而不获取nohup.out?

 类似资料:
  • 我有将日志保存到文件配置,但日志会附加到现有内容。我想创建总是新的文件。我怎么能那样做? 我的log4j2.xml:

  • 我使用log4j进行日志记录,并且使用.log格式的所有日志文件,其结构简单,如; log4j.rootcategory=info,C,R log4j.appender.c=org.apache.log4j.consoleappender log4j.appender.c.layout=org.apache.log4j.patternlayout log4j.appender.r.layout=o

  • 问题内容: 我正在尝试配置log4j以将消息记录到文件中。现在,确实使用我提供的名称创建了该文件,但是日志未写入该文件。我的代码: 我文件的内容: 运行此命令时,将在控制台中获得以下输出: 该文件确实在我的主目录中创建。但是它是空的。 有什么想法我做错了吗?我正在使用log4j 1.2.17版。 问题答案: 输出似乎是Java标准日志记录框架(JUL)发出的默认格式。 因此,有两种可能性(想到):

  • DailyRollingFileAppender没有创建每日备份日志文件。 我正在使用下面的配置,它在我的本地机器上工作,但在部署项目的机器上不工作。 框架——SpringMVC 我无法理解配置的哪个部分正在阻塞DailRollingFileAppender,以便在我的服务器上创建日期日志。 编辑- 我根据建议更新了我的文件,但在第二天上午12点,它不会创建新的备份文件。意味着它更新了AppLog

  • 问题内容: 我当前正在创建一个可以包含模块的系统(将它们视为插件),其中每个模块可以拥有自己的专用日志。 我想使用log4j2项目进行日志记录,但是文件附加器似乎有些麻烦。 主项目(整个模块的模块加载器和“核心”)应具有自己的日志文件,而模块应具有自己的日志文件(如)。 通过阅读有关追加程序的文档,我发现了该类,并且我将使用它。直到我发现不能简单地将追加器添加到由创建的默认记录器中。 LogMan

  • 我正在使用带有log4j2的Spring Boot1.5.9,当我测试日志记录功能时,创建了日志文件,但没有将日志写入其中,而控制台日志记录程序运行良好。请在pom.xml&log4j2.properties配置下面找到。 log4j2.properties文件: