我在一台 Linux 机器上运行两个 JVM(server1 和 server2)。&我想将日志从默认目录移动到每个 JVM 的自定义目录。
就像是 -
/data/logs/$JVM_NAME/
这样最终的日志就会到达类似的目录
/data/logs/server1/
&
/data/logs/server2/
我了解到可以在服务器启动参数中设置 jboss.server.log.dir 变量。然后我尝试了以下启动命令。
nohup sh /appl/isaac/jboss/jboss-eap-6.4/bin/domain.sh -b some.server.domain.com -bmanagement some.server.domain.com -Djboss.domain.log.dir=/data/logs -Djboss.server.log.dir=/data/logs/ > /tmp/domain.out 2>&1 &
一切运行正常。日志正在写入/data/logs/
。
但我不知道如何在这些参数中添加变量,以便为这台机器上的每个 JVM 添加一个带有 JVM 名称的子目录。这样日志就会写入/data/logs/$JVM_NAME/.
答案1
log.dir 属性的值必须是您想要的日志的完整路径。
要从命令行启动,您可以执行以下操作:
export JVM_NAME="server1"; nohup sh /appl/isaac/jboss/jboss-eap-6.4/bin/domain.sh -b some.server.domain.com -bmanagement some.server.domain.com -Djboss.domain.log.dir=/data/logs/$JVM_NAME -Djboss.server.log.dir=/data/logs/$JVM_NAME > /tmp/domain.out 2>&1 &
但是,为了自动启动多个服务器,请为每个服务器使用一个变量,这通常在每个实例的 EAP_HOME/bin/standalone.conf 或 EAP_HOME/bin/domain.conf 中完成。
JVM_NAME="server1"
JAVA_OPTS="$JAVA_OPTS -Djboss.domain.log.dir=/data/logs/$JVM_NAME -Djboss.server.log.dir=/data/logs/$JVM_NAME"
我假设您为正在运行的两台服务器设置了单独的配置。
不确定您是否真的需要同时设置 domain.log.dir 和 server.log.dir,我假设在域模式下运行时使用 domain.log.dir。