将 Undertow access.log 写入 Wildfly 中的非默认位置

Posted

技术标签:

【中文标题】将 Undertow access.log 写入 Wildfly 中的非默认位置【英文标题】:Writing Undertow access.log to non-default location in Wildfly 【发布时间】:2014-11-20 18:08:48 【问题描述】:

我是 Wildfly 中的 undertow Web 服务器的新手。

我在域模式下运行 Wildfly8.1 并尝试将访问日志写入非默认位置。当前默认为 directory="$jboss.server.log.dir"。我正在尝试将访问日志属性“目录”设置为像这样 diretory="$custom.jboss.server.log.dir。我有这个变量将 host-slave.xml 定义为:

<server name="myserver" group="mygroup" auto-start="true">
<paths>
    <path name="custom.jboss.server.log.dir" path="/apps/logs/servers/server_mars_8443/logs"/>
</paths>
</server>

在 domain.xml 我有:

<host name="default-host" alias="localhost">
 <location name="/" handler="welcome-content"/>
 <access-log directory="$custom.jboss.server.log.dir" prefix="access.log_" suffix="" pattern="%t %h %l %u %r %s %b %T" worker="default"/>
 ...
</host>

此设置适用于 JBoss EAP 6.2。

但是,在 Wildfly 8.1 中,我收到以下错误:

ERROR [org.jboss.as.controller.management-operation] (Controller Boot Thread) JBAS014613: Operation ("add") failed - address: ([
("subsystem" => "undertow"),
("server" => "default-server"),
("host" => "default-host")

]) - 失败描述:"JBAS014771: 缺少/不可用依赖项的服务" => ["jboss.undertow.server.default-server.default-host 丢失 [jboss.undertow.server.default-server.默认主机。访问日志]"] 2014-09-25 16:25:33,611 错误 [org.jboss.as.controller.management-operation](控制器引导线程)​​JBAS014613:操作(“添加”)失败 - 地址:([ ("子系统" => "undertow"), (“服务器”=>“默认服务器”), (“主机”=>“默认主机”), (“位置”=>“/”) ]) - 故障描述:“JBAS014879:由于一个或多个间接依赖不可用,一个或多个服务无法启动。” => "无法启动的服务:" => ["jboss.undertow.server.default-server.default-host.location./"], “可能是原因的服务:” => [“jboss.undertow.server.default-server.default-host.access-log”]

【问题讨论】:

【参考方案1】:

您是不是忘了在domain.xml 上指定default-server 的属性?您的例外是关于default-server,而不是关于myserver

【讨论】:

默认服务器在 domain.xml 中指定。请看下文。 这就是我的意思 :) 你似乎没有在上面定义custom.jboss.server.log.dir,所以,当你说默认主机应该将它的请求记录到这个地方时,default-server不知道是什么意思。 是的,这是在 host-slave.xml 文件中定义的。 该路径仅为主机 my_server 定义。尝试为default-server 定义path also

以上是关于将 Undertow access.log 写入 Wildfly 中的非默认位置的主要内容,如果未能解决你的问题,请参考以下文章

Nginx 无法写入 access.log

access.log太大怎么办

Undertow 中的图像/媒体 MIME 类型响应

如果文件不存在则创建文件,然后将日志写入其中

将用户名从 Nginx 传递或写入应用程序

linux清空文件内容