在 wildfly 服务器参数中提供 catalina.home 值
Providing catalina.home value in wildfly server arguments
我正在使用 log4j 登录我的项目。在 log4j.xml 中,我提供了在变量 catalina.home 的帮助下生成的日志文件的路径。您可以在下面找到代码段:
<appender name="MyAppender1" class="org.apache.log4j.DailyRollingFileAppender">
<param name="File" value="${catalina.home}/MyLog.log" />
<param name="DatePattern" value="'.'yyyy-MM-dd" />
<layout class="org.apache.log4j.PatternLayout">
<param name="ConversionPattern" value="[%p] %d %c %M - %m%n"/>
</layout>
</appender>
我想通过使用 JBOSS_LOG_DIR 变量的值在 standalone.conf.bat 内的参数中提供 catalina.home 的值,通过使用这个命令
set "JAVA_OPTS=%JAVA_OPTS% -Djboss.modules.system.pkgs=org.jboss.byteman -Dcatalina.home=%JBOSS_LOG_DIR%"
但是我得到的只是 catalina.home 前面的空白值,正如您在启动服务器时生成的日志中看到的那样。
-Dprogram.name=standalone.bat -Xms64M -Xmx512M -XX:MetaspaceSize=96M -XX:MaxMetaspaceSize=256m -Djava.net.preferIPv4Stack=true -Djboss.modules.system.pkgs=org.jboss.byteman -Dcatalina.home= -Dorg.jboss.boot.log.file=D:\Softwares\wildfly_2\standalone\log\server.log -Dlogging.configuration=file:D:\Softwares\wildfly_2\standalone\configuration/logging.properties
如果我在这里给出静态路径而不是 JBOSS_LOG_DIR 变量,它工作正常。
此外,我尝试在 standalone.sh 中将其设置为 JBOSS_LOG_DIR(我对此发表了评论) ,在下面的代码中:
while true; do
if [ "x$LAUNCH_JBOSS_IN_BACKGROUND" = "x" ]; then
# Execute the JVM in the foreground
eval \"$JAVA\" -D\"[Standalone]\" $JAVA_OPTS \
\"-Dcatalina.home="$JBOSS_LOG_DIR"\"\
\"-Dorg.jboss.boot.log.file="$JBOSS_LOG_DIR"/server.log\" \
\"-Dlogging.configuration=file:"$JBOSS_CONFIG_DIR"/logging.properties\" \
#\"-Dcatalina.home="$JBOSS_LOG_DIR"\"\#
-jar \""$JBOSS_HOME"/jboss-modules.jar\" \
$MODULE_OPTS \
-mp \""${JBOSS_MODULEPATH}"\" \
org.jboss.as.standalone \
-Djboss.home.dir=\""$JBOSS_HOME"\" \
-Djboss.server.base.dir=\""$JBOSS_BASE_DIR"\" \
"$SERVER_OPTS"
JBOSS_STATUS=$?
else
# Execute the JVM in the background
eval \"$JAVA\" -D\"[Standalone]\" $JAVA_OPTS \
\"-Dcatalina.home="$JBOSS_LOG_DIR"\"\
\"-Dorg.jboss.boot.log.file="$JBOSS_LOG_DIR"/server.log\" \
\"-Dlogging.configuration=file:"$JBOSS_CONFIG_DIR"/logging.properties\" \
#\"-Dcatalina.home="$JBOSS_LOG_DIR"\"\#
-jar \""$JBOSS_HOME"/jboss-modules.jar\" \
$MODULE_OPTS \
-mp \""${JBOSS_MODULEPATH}"\" \
org.jboss.as.standalone \
-Djboss.home.dir=\""$JBOSS_HOME"\" \
-Djboss.server.base.dir=\""$JBOSS_BASE_DIR"\" \
"$SERVER_OPTS"
但是在这种情况下,-Dcatalina.home 本身并没有被添加到字符串中。你能帮我看看哪里出了问题吗?提前致谢
如果您使用 standalone.sh
,则需要编辑 standalone.conf
中的 JAVA_OPTS
。不是那个以 .bat
结尾的那个,因为那是 standalone.bat
脚本。
您遇到的另一个问题是 JBOSS_LOG_DIR
是在执行 standalone.conf
之后设置的。
一种选择是在 log4j.xml
文件中使用 jboss.server.log.dir
属性 而不是 catalina.home
。另一种选择是做类似 JAVA_OPTS="$JAVA_OPTS -Dcatalina.home=$JBOSS_HOME/standalone/log
的事情。但是,首选先前的选项。
我正在使用 log4j 登录我的项目。在 log4j.xml 中,我提供了在变量 catalina.home 的帮助下生成的日志文件的路径。您可以在下面找到代码段:
<appender name="MyAppender1" class="org.apache.log4j.DailyRollingFileAppender">
<param name="File" value="${catalina.home}/MyLog.log" />
<param name="DatePattern" value="'.'yyyy-MM-dd" />
<layout class="org.apache.log4j.PatternLayout">
<param name="ConversionPattern" value="[%p] %d %c %M - %m%n"/>
</layout>
</appender>
我想通过使用 JBOSS_LOG_DIR 变量的值在 standalone.conf.bat 内的参数中提供 catalina.home 的值,通过使用这个命令
set "JAVA_OPTS=%JAVA_OPTS% -Djboss.modules.system.pkgs=org.jboss.byteman -Dcatalina.home=%JBOSS_LOG_DIR%"
但是我得到的只是 catalina.home 前面的空白值,正如您在启动服务器时生成的日志中看到的那样。
-Dprogram.name=standalone.bat -Xms64M -Xmx512M -XX:MetaspaceSize=96M -XX:MaxMetaspaceSize=256m -Djava.net.preferIPv4Stack=true -Djboss.modules.system.pkgs=org.jboss.byteman -Dcatalina.home= -Dorg.jboss.boot.log.file=D:\Softwares\wildfly_2\standalone\log\server.log -Dlogging.configuration=file:D:\Softwares\wildfly_2\standalone\configuration/logging.properties
如果我在这里给出静态路径而不是 JBOSS_LOG_DIR 变量,它工作正常。
此外,我尝试在 standalone.sh 中将其设置为 JBOSS_LOG_DIR(我对此发表了评论) ,在下面的代码中:
while true; do
if [ "x$LAUNCH_JBOSS_IN_BACKGROUND" = "x" ]; then
# Execute the JVM in the foreground
eval \"$JAVA\" -D\"[Standalone]\" $JAVA_OPTS \
\"-Dcatalina.home="$JBOSS_LOG_DIR"\"\
\"-Dorg.jboss.boot.log.file="$JBOSS_LOG_DIR"/server.log\" \
\"-Dlogging.configuration=file:"$JBOSS_CONFIG_DIR"/logging.properties\" \
#\"-Dcatalina.home="$JBOSS_LOG_DIR"\"\#
-jar \""$JBOSS_HOME"/jboss-modules.jar\" \
$MODULE_OPTS \
-mp \""${JBOSS_MODULEPATH}"\" \
org.jboss.as.standalone \
-Djboss.home.dir=\""$JBOSS_HOME"\" \
-Djboss.server.base.dir=\""$JBOSS_BASE_DIR"\" \
"$SERVER_OPTS"
JBOSS_STATUS=$?
else
# Execute the JVM in the background
eval \"$JAVA\" -D\"[Standalone]\" $JAVA_OPTS \
\"-Dcatalina.home="$JBOSS_LOG_DIR"\"\
\"-Dorg.jboss.boot.log.file="$JBOSS_LOG_DIR"/server.log\" \
\"-Dlogging.configuration=file:"$JBOSS_CONFIG_DIR"/logging.properties\" \
#\"-Dcatalina.home="$JBOSS_LOG_DIR"\"\#
-jar \""$JBOSS_HOME"/jboss-modules.jar\" \
$MODULE_OPTS \
-mp \""${JBOSS_MODULEPATH}"\" \
org.jboss.as.standalone \
-Djboss.home.dir=\""$JBOSS_HOME"\" \
-Djboss.server.base.dir=\""$JBOSS_BASE_DIR"\" \
"$SERVER_OPTS"
但是在这种情况下,-Dcatalina.home 本身并没有被添加到字符串中。你能帮我看看哪里出了问题吗?提前致谢
如果您使用 standalone.sh
,则需要编辑 standalone.conf
中的 JAVA_OPTS
。不是那个以 .bat
结尾的那个,因为那是 standalone.bat
脚本。
您遇到的另一个问题是 JBOSS_LOG_DIR
是在执行 standalone.conf
之后设置的。
一种选择是在 log4j.xml
文件中使用 jboss.server.log.dir
属性 而不是 catalina.home
。另一种选择是做类似 JAVA_OPTS="$JAVA_OPTS -Dcatalina.home=$JBOSS_HOME/standalone/log
的事情。但是,首选先前的选项。