【问题标题】:JBoss 7.2.0 Final creating server.log file in unexpected placesJBoss 7.2.0 最终在意想不到的地方创建 server.log 文件
【发布时间】:2015-05-03 11:52:10
【问题描述】:

我正在尝试在 CentOS 6.5 上设置 JBoss 7.2.0 Final 来处理我们软件的 4 种不同部署。我不确定我的设置是否正确,但一切似乎都正常,除了 server.log 没有结束,我认为我告诉它要保存在 4 个部署中的 3 个中。

有 4 个 HTTP 端口用于部署。它们是:8080:8180:9876:9976。我不知道这是否是相关信息,但我提出来是因为在每个standalone.xml 文件中我使用jboss.socket.binding.port-offset 选项来分配端口。似乎可以完美运行的唯一部署是:8080,它有jboss.socket.binding.port-offset:0:8180jboss.socket.binding.port-offset:100 等。

例如,每个部署都位于自己的目录中

/opt/jboss-eap-6.1/target/standalone8080/

/opt/jboss-eap-6.1/target/standalone9876/

在每个部署的standalone.xml 文件中(例如/opt/jboss-eap-6.1/target/standalone9876/configuration/standalone.xml),服务器日志的指定方式相同:

<file relative-to="jboss.server.log.dir" path="server.log"/>

这应该会导致 server.log 被保存在,例如, /opt/jboss-eap-6.1/target/standalone9876/log, 并且在每个端口上重新部署软件时,我已经回显了 $JBOSS_LOG_DIR 变量,并且表面上似乎在每种情况下都正确设置。

但是,如上所述,端口:8080 在预期位置(/opt/jboss-eap-6.1/target/standalone8080/log)创建server.log 文件。

位置不正确:

--Port :8180 将其server.log 文件放在:8080 位置。即,:8180 会覆盖位于/opt/jboss-eap-6.1/target/standalone8080/logserver.log 文件。

--端口:9876将其server.log文件放入/opt/jboss-eap-6.1/target/standalone/log。即,它会创建一个名为 standalone 的新文件夹并将文件放在那里。我要补充一点,在以前,整个端口 :9876 部署位于该路径 (/opt/jboss-eap-6.1/target/standalone) 的文件夹中。这个明显的线索让我觉得还有其他地方可以设置server.log 文件路径。我可能完全错了。

--最后,:9976 端口将其 server.log 文件放在所需的log 目录之上一级,换句话说,在/opt/jboss-eap-6.1/target/standalone9976

我不知道这 4 种部署的处理方式是否根本不正确,或者是否有隐藏在某处的设置覆盖了我想要的路径。

我看到 one poster 遇到类似问题,说他们对 domain.xml 进行了更改以解决问题。我认为我做不到,因为我只有一个与所有 4 个部署相关联的 domain.xml 文件(位于 /opt/jboss-eap-6.1/domain/configuration)。

Another post 建议删除standalone.xml 文件中&lt;file&gt; 标记中的“相对”位。我尝试使用端口:9876 如下:

<file path="/opt/jboss-eap-6.1/target/standalone9876/log/server.log"/>

这对我不起作用。 server.log 文件仍然在

<file path="/opt/jboss-eap-6.1/target/standalone/log/server.log"/>

任何想法我做错了什么?我需要在另一个地方声明我的日志路径,还是这 4 个服务器的设置方式完全不正确?

【问题讨论】:

    标签: jboss7.x centos6


    【解决方案1】:

    查看每个配置目录中的每个logging.properties 文件。您可能只需要更新一次,将路径更改为{jboss.server.log.dir}/server.log。然后,当您启动每台服务器时,您需要指定jboss.server.log.dir 目录。

    ./bin/standalone.sh -Djboss.server.log.dir=$JBOSS_HOME/target/standalone8080/log
    

    $JBOSS_HOME/bin/standalone.conf 文件中可能有一种巧妙的处理方式。

    【讨论】:

    • 啊,非常感谢!实际上,每个部署的logging.properties 都包含一个硬编码行,例如handler.FILE.fileName=/opt/jboss-eap-6.1/target/standalone8080/log/server.log。除了standalone8080 文件夹中的server.log 之外,路径都不同且全部错误。我尝试使用-D 选项更改路径并调用standalone.sh。结果是没有进行路径替换,并且在调用standalone.sh的目录中名为{jboss.server.log.dir}的文件夹中创建了server.log
    • 所以,最后我修改了logging.properties,在server.log的正确路径中硬编码。在我了解有关 JBoss 的更多信息之前,这已经足够了。再次感谢您!
    • 每次启动服务器时都会覆盖logging.properties 文件。 IIRC 有一个 JIRA 有望解决这个问题,但是当设置 jboss.server.log.dir 属性时,我们通常会遇到先有鸡还是先有蛋的问题。
    • 很高兴知道。我会密切注意这个特殊问题,以防日志文件再次出现在奇怪的地方。再次感谢!
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2021-08-17
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2011-07-08
    相关资源
    最近更新 更多