WildFly 9 访问日志记录
WildFly 9 Access Logging
我正在尝试在域模式下使用 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 注册访问日志记录?
应该有一种方法可以在 CLI 中为域模式和独立模式添加所有资源。您可能在 XML 中编辑了错误的配置文件。无论使用 CLI 是首选解决方案。
您需要知道的第一件事是您 运行 属于哪个个人资料。你可以通过 server-group(s) 运行.
来判断
[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
setting 添加到 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")
这将向 server-group 中的所有服务器添加访问日志记录。在创建日志之前,您需要通过 Web 请求访问服务器。也不需要重新启动或重新加载。
还有一个额外的注意事项,您可以使用以下命令在 undertow 中查看 setting
资源可用的设置。
/profile=full/subsystem=undertow/server=default-server/host=default-host/setting=*:read-resource-description
如果您需要记录处理请求所花费的时间,以秒为单位(格式属性 %T),您应该添加额外的参数:
/profile=full/subsystem=undertow/server=default-server/http-listener=default:write-attribute(name=record-request-start-time,value=true)
我正在尝试在域模式下使用 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 注册访问日志记录?
应该有一种方法可以在 CLI 中为域模式和独立模式添加所有资源。您可能在 XML 中编辑了错误的配置文件。无论使用 CLI 是首选解决方案。
您需要知道的第一件事是您 运行 属于哪个个人资料。你可以通过 server-group(s) 运行.
来判断[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
setting 添加到 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")
这将向 server-group 中的所有服务器添加访问日志记录。在创建日志之前,您需要通过 Web 请求访问服务器。也不需要重新启动或重新加载。
还有一个额外的注意事项,您可以使用以下命令在 undertow 中查看 setting
资源可用的设置。
/profile=full/subsystem=undertow/server=default-server/host=default-host/setting=*:read-resource-description
如果您需要记录处理请求所花费的时间,以秒为单位(格式属性 %T),您应该添加额外的参数:
/profile=full/subsystem=undertow/server=default-server/http-listener=default:write-attribute(name=record-request-start-time,value=true)