如何在jar文件所在的位置生成日志文件

时间:2017-11-14 11:54:09

标签: java intellij-idea log4j2 jsch

我正在使用jsch channelexec来调用.sh文件。 .sh文件的内容是,

#!/bin/bash

java -jar /xxx/yyy.war

在我的日志文件中,我提到路径为

  

./日志/ xxx.log

当我在intellij中运行ap时,我可以看到日志文件与项目位于同一文件夹中。 当我使用java -jar / xxx / yyy / war从终端运行应用程序时,日志文件与jar文件位于同一位置。

但是当我尝试在java中使用jsch调用.sh文件时,应用程序开始运行,但日志文件不会出现在任何地方。不确定是创建它们还是创建它们的位置。在java中使用jsch执行.sh文件,springboot,gradle时,如何使它出现在与.sh文件相同的位置?

我正在使用ubuntu,log4j2,intellij,java和jsch。

1 个答案:

答案 0 :(得分:0)

您的日志文件可能位于用户的主目录下。运行一个新的jsck并输入pwd - 它们可能就在那里。

确实使用日志文件但是您应该完全指定路径。通过固定位置,例如/opt/app/logs/xxx.log,或通过固定位置的符号链接,或通过您知道的系统环境变量,将始终设置,例如$LOGS_HOME/xxx.log

依赖./是一个非常糟糕的主意,因为它完全取决于执行环境。