第 10 章 使用 JBoss EAP 进行日志记录


JBoss EAP 为其内部使用和已部署的应用程序提供了高度可配置日志记录功能。logging 子系统基于 JBoss LogManager,除了 JBoss Logging 外,还支持多种第三方应用程序日志框架。

10.1. JBoss EAP 中的日志记录机制

JBoss EAP 提供一系列日志记录机制,以支持监控、故障排除和管理服务器环境。了解这些机制有助于维护和调试 JBoss EAP 设置:

10.1.1. JBoss EAP 中的服务器日志记录

在 JBoss EAP 中,服务器日志记录主要通过 server.log 文件进行管理,其中记录了所有日志条目。

此日志文件的位置取决于您的操作模式:

  • 单机服务器: EAP_HOME/standalone/log/server.log
  • 受管域: EAP_HOME/domain/servers/SERVER_NAME/log/server.log

此文件通常称为服务器日志。

10.1.2. JBoss EAP 中的引导日志

在启动过程中,JBoss EAP 会记录有关 Java 环境以及各个服务的启动信息。此日志可用于故障排除,并默认写入服务器日志。???

引导日志记录在 logging.properties 文件中配置,该文件在 JBoss EAP 日志记录子系统启动前被使用。

文件位置取决于您的操作模式:

  • 独立服务器: EAP_HOME/standalone/configuration/logging.properties
  • 受管域:域控制器和每台服务器都有一个 logging.properties 文件。

    • 域控制器: EAP_HOME/domain/configuration/logging.properties
    • server: EAP_HOME/domain/servers/SERVER_NAME/data/logging.properties

      警告

      不要直接编辑 logging.properties 文件,除非需要。如果您有特定的用例,请在进行更改前查阅 红帽客户门户网站

      在启动时覆盖对 logging.properties 文件的手动修改。

10.1.2.1. 查看引导错误

在对 JBoss EAP 进行故障排除时,检查引导错误是一个关键步骤。您可以使用这些信息诊断并解决错误。如果需要,创建一个支持问题单,以协助对启动错误进行故障排除。

您可以使用以下方法查看引导错误:

  • 查看 server.log 文件中的引导错误
  • 使用管理 CLI 命令读取引导错误

每种方法都有自己的优势,具体取决于您的要求。

10.1.2.1.1. 查看 server.log 文件中的引导错误

您可以打开 server.log 文件,以查看引导过程中出现的任何错误。

这个方法提供了错误消息以及相关信息,可帮助您了解错误的原因。它以纯文本格式显示错误消息。

先决条件

  • 您可以访问 JBoss EAP 服务器的文件系统。
  • 您可以访问 server.log 文件进行检查。

流程

  1. 在文件查看器中打开 server.log 文件。
  2. 导航到文件末尾。
  3. 向后搜索 WFLYSRV0049 消息标识符,这表示最新启动序列的开头。
  4. 在该点中搜索 ERROR 实例的日志。每个实例都将包含错误的描述,并列出涉及的模块。

    以下是 server.log 日志文件中的错误描述示例:

    2016-03-16 14:32:01,627 ERROR [org.jboss.msc.service.fail] (MSC service thread 1-7) MSC000001: Failed to start service jboss.undertow.listener.default: org.jboss.msc.service.StartException in service jboss.undertow.listener.default: Could not start http listener
            at org.wildfly.extension.undertow.ListenerService.start(ListenerService.java:142)
            at org.jboss.msc.service.ServiceControllerImpl$StartTask.startService(ServiceControllerImpl.java:1948)
            at org.jboss.msc.service.ServiceControllerImpl$StartTask.run(ServiceControllerImpl.java:1881)
            at java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1142)
            at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:617)
            at java.lang.Thread.run(Thread.java:745)
    Caused by: java.net.BindException: Address already in use
            ...
    Copy to Clipboard Toggle word wrap
10.1.2.1.2. 使用管理 CLI 命令读取引导错误

在对 JBoss EAP 进行故障排除时,您可以使用 read-boot-errors 管理 CLI 命令查看启动期间报告的错误。

如果您无法访问服务器的文件系统,则此方法很有用,通过脚本进行远程监控和错误检查。使用管理 CLI 命令,您可以识别和解决引导错误。例如,您可以编写一个启动多个 JBoss EAP 实例的脚本,并检查启动错误。

先决条件

  • JBoss EAP 正在运行。
  • 您可以访问管理 CLI。

流程

  1. 启动管理 CLI。

    $ <EAP_HOME>/bin/jboss-cli.sh
    Copy to Clipboard Toggle word wrap
  2. 运行以下管理 CLI 命令:

    /core-service=management:read-boot-errors
    Copy to Clipboard Toggle word wrap
  3. 查看输出以查看引导过程中出现的任何错误列表。

    输出示例
    {
        "outcome" => "success",
        "result" => [
            {
                "failed-operation" => {
                    "operation" => "add",
                    "address" => [
                        ("subsystem" => "undertow"),
                        ("server" => "default-server"),
                        ("http-listener" => "default")
                    ]
                },
                "failure-description" => "{\"WFLYCTL0080: Failed services\" => {\"jboss.undertow.listener.default\" => \"org.jboss.msc.service.StartException in service jboss.undertow.listener.default: Could not start http listener
        Caused by: java.net.BindException: Address already in use\"}}",
                "failed-services" => {"jboss.undertow.listener.default" => "org.jboss.msc.service.StartException in service jboss.undertow.listener.default: Could not start http listener
        Caused by: java.net.BindException: Address already in use"}
            }
            ...
        ]
    }
    Copy to Clipboard Toggle word wrap

10.1.3. JBoss EAP 中的垃圾回收日志记录

垃圾回收日志记录以纯文本日志文件记录所有垃圾回收活动。这些日志可用于诊断目的。

垃圾回收日志位于 EAP_HOME/standalone/log/gc.log.DIGIT.current。每个日志文件都限制为 3 MB,最多轮转五个文件。

建议您启用垃圾回收日志,因为它有助于进行故障排除并尽可能少的开销。但是,您可以在启动服务器前将 GC_LOG 变量设置为 false 来禁用它。例如:

$ export GC_LOG=false
$ EAP_HOME/bin/standalone.sh
Copy to Clipboard Toggle word wrap

10.1.4. JBoss EAP 中的默认日志文件位置

以下日志文件基于默认日志记录配置创建。这些配置使用定期日志处理程序来编写服务器日志文件。

Expand
表 10.1. 独立服务器的默认日志文件
日志文件描述

EAP_HOME/standalone/log/server.log

包含服务器日志消息,包括启动消息。

EAP_HOME/standalone/log/gc.log.DIGIT.current

包含垃圾回收详情。

Expand
表 10.2. 受管域的默认日志文件
日志文件描述

EAP_HOME/domain/log/host-controller.log

包含与主机控制器启动相关的日志消息。

EAP_HOME/domain/log/process-controller.log

包含与进程控制器启动相关的日志消息。

EAP_HOME/domain/servers/SERVER_NAME/log/server.log

包含 named 服务器的日志消息,包括启动消息。

您可以通过将 JVM 属性设置为启动配置文件来配置 JBoss EAP 的默认区域设置。启动配置文件是单机服务器的 EAP_HOME/bin/standalone.conf,或者用于受管域的 EAP_HOME/bin/domain.conf

注意

对于 Windows 服务器,JBoss EAP 启动配置文件是 standalone.conf.batdomain.conf.bat

已国际化和本地化的日志消息将使用此默认区域设置。

先决条件

  • JBoss EAP 正在运行。
  • 您可以访问服务器模式的启动配置文件。

流程

  1. 通过将 user.language 属性添加到 JAVA_OPTS 变量来设置语言。例如,要将区域设置设置为法语,请在启动配置文件中添加以下行:

    JAVA_OPTS="$JAVA_OPTS -Duser.language=fr"
    Copy to Clipboard Toggle word wrap
  2. 通过添加 user.languageuser.country 属性来设置语言和国家/地区。例如,要将区域设置设置为 Brazilian Portuguese,请添加以下行:

    JAVA_OPTS="$JAVA_OPTS -Duser.language=pt -Duser.country=BR"
    Copy to Clipboard Toggle word wrap
  3. 使用 o'rg.jboss.logging.locale' 属性设置服务器区域设置,为日志消息指定不同的区域设置。这会覆盖用于日志记录的默认区域设置。例如,要将服务器区域设置设置为 Brazilian Portuguese,请添加以下行:

    JAVA_OPTS="$JAVA_OPTS -Dorg.jboss.logging.locale=pt-BR"
    Copy to Clipboard Toggle word wrap

    此属性仅影响使用 JBoss Logging 及其依赖项的日志消息。Jakarta Server Faces 等其他依赖项无法获取覆盖的区域。

    注意

    要使用与系统默认区域不同的区域设置启动 JBoss EAP,可编辑 EAP_HOME/bin/standalone.conf 用于单机模式,或为受管域模式的 EAP_HOME/bin/domain.conf 编辑 EAP_HOME /bin/domain.conf。使用 org.jboss.logging.locale 属性以 BCP 47 格式设置区域设置。

返回顶部
Red Hat logoGithubredditYoutubeTwitter

学习

尝试、购买和销售

社区

关于红帽文档

通过我们的产品和服务,以及可以信赖的内容,帮助红帽用户创新并实现他们的目标。 了解我们当前的更新.

让开源更具包容性

红帽致力于替换我们的代码、文档和 Web 属性中存在问题的语言。欲了解更多详情,请参阅红帽博客.

關於紅帽

我们提供强化的解决方案,使企业能够更轻松地跨平台和环境(从核心数据中心到网络边缘)工作。

Theme

© 2025 Red Hat