1

我正在尝试在域模式下使用 WildFly 9 设置访问日志记录。我发现了一些建议在 domain.xml 文件中使用类似这样的资源:

 <host name="default-host" alias="localhost">
     <location name="/" handler="welcome-content"/>
     <filter-ref name="server-header"/>
     <filter-ref name="x-powered-by-header"/>
     <access-log pattern="%A%t%h%l%u%r%s%b%T%I" directory="${jboss.server.log.dir}" prefix="access" suffix=".log"/>
 </host>

然后我重新启动了wildfly,但没有发生日志记录,wildfly启动也没有错误,所以我只是把头撞在墙上。我非常感谢任何人可以提供的任何帮助。

还有一种方法可以在域模式下使用 cli 注册访问日志吗?

4

2 回答 2

5

应该有一种方法可以在 CLI 中为域模式和独立模式添加所有资源。您可能在 XML 中编辑了错误的配置文件。不管使用 CLI 是首选的解决方案。

您需要知道的第一件事是您在哪个配置文件下运行。您可以通过运行的服务器组来确定。

[domain@localhost:9990 /] /server-group=*:read-attribute(name=profile)
{
    "outcome" => "success",
    "result" => [
        {
            "address" => [("server-group" => "main-server-group")],
            "outcome" => "success",
            "result" => "full"
        },
        {
            "address" => [("server-group" => "other-server-group")],
            "outcome" => "success",
            "result" => "full-ha"
        }
    ]
}

我们假设在这里我们使用main-server-group. 然后,您需要将access-log设置添加到undertow子系统。

/profile=full/subsystem=undertow/server=default-server/host=default-host/setting=access-log:add(pattern="%A%t%h%l%u%r%s%b%T%I", directory="${jboss.server.log.dir}", prefix=access, suffix=".log")

这将为该服务器组中的所有服务器添加访问日志记录。在创建日志之前,您需要通过 Web 请求访问服务器。也不需要重新启动或重新加载。

setting还有一个额外的注意事项,您可以使用以下命令查看资源可用的设置。

/profile=full/subsystem=undertow/server=default-server/host=default-host/setting=*:read-resource-description
于 2016-01-06T17:44:41.627 回答
2

如果您需要记录处理请求所花费的时间,以秒为单位(格式属性 %T),您应该添加附加参数:

/profile=full/subsystem=undertow/server=default-server/http-listener=default:write-attribute(name=record-request-start-time,value=true)
于 2016-02-29T06:21:31.520 回答