如何配置 WildFly 8.2 以使用 AccessLogHandler
How to configure WildFly 8.2 to use AccessLogHandler
我发现有一个处理程序 io.undertow.server.handlers.accesslog.AccessLogHandler
可以记录 http 访问。
但是我无法配置它,所以它会生成任何日志消息。
这是我 standalone.xml 的代码片段:
<filter class-name="io.undertow.server.handlers.accesslog.AccessLogHandler" name="access-log-handler" module="io.undertow.core">
<param name="formatString" value="common"/>
<param name="accessLogReceiver" value="io.undertow.server.handlers.accesslog.JBossLoggingAccessLogReceiver"/>
</filter>
我的问题是如何配置该处理程序以便它开始生成日志消息。
我错过了添加这个 xml 片段 (Whosebug):
<host name="default-host" >
.....
<filter-ref name="access-log-handler"/>
</host>
然后我得到了这个:
Caused by: java.lang.NoSuchMethodException: io.undertow.server.handlers.accesslog.AccessLogHandler.<init>(io.undertow.server.HttpHandler)"}}
可以使用 jboss-cli 添加处理程序并查看 standalone.xml 是如何更改的:
/subsystem=undertow/configuration=filter/custom-filter=access-log-handler:add(class-name=io.undertow.server.handlers.accesslog.AccessLogHandler, module=io.undertow.core)
/subsystem=undertow/server=default-server/host=default-host/filter-ref=access-log-handler:add
无需为访问日志添加自定义过滤器。您所需要的只是在子系统本身中配置访问日志。
这将是一个例子:
<host name="default-host" >
<location name="/" handler="welcome-content">
....
<access-log />
</host>
这将默认登录前缀为 access_.log
的日志文件夹
你还可以自定义各种东西,从xsd:
<xs:attribute name="pattern" use="optional" type="xs:string" default="common"/>
<xs:attribute name="worker" use="optional" type="xs:string" default="default"/>
<xs:attribute name="directory" use="optional" type="xs:string" default="${jboss.server.log.dir}"/>
<xs:attribute name="relative-to" use="optional" type="xs:string" />
<xs:attribute name="prefix" use="optional" type="xs:string" default="access_log"/>
<xs:attribute name="suffix" use="optional" type="xs:string" default=".log"/>
我发现有一个处理程序 io.undertow.server.handlers.accesslog.AccessLogHandler
可以记录 http 访问。
但是我无法配置它,所以它会生成任何日志消息。
这是我 standalone.xml 的代码片段:
<filter class-name="io.undertow.server.handlers.accesslog.AccessLogHandler" name="access-log-handler" module="io.undertow.core">
<param name="formatString" value="common"/>
<param name="accessLogReceiver" value="io.undertow.server.handlers.accesslog.JBossLoggingAccessLogReceiver"/>
</filter>
我的问题是如何配置该处理程序以便它开始生成日志消息。
我错过了添加这个 xml 片段 (Whosebug):
<host name="default-host" >
.....
<filter-ref name="access-log-handler"/>
</host>
然后我得到了这个:
Caused by: java.lang.NoSuchMethodException: io.undertow.server.handlers.accesslog.AccessLogHandler.<init>(io.undertow.server.HttpHandler)"}}
可以使用 jboss-cli 添加处理程序并查看 standalone.xml 是如何更改的:
/subsystem=undertow/configuration=filter/custom-filter=access-log-handler:add(class-name=io.undertow.server.handlers.accesslog.AccessLogHandler, module=io.undertow.core)
/subsystem=undertow/server=default-server/host=default-host/filter-ref=access-log-handler:add
无需为访问日志添加自定义过滤器。您所需要的只是在子系统本身中配置访问日志。 这将是一个例子:
<host name="default-host" >
<location name="/" handler="welcome-content">
....
<access-log />
</host>
这将默认登录前缀为 access_.log
的日志文件夹你还可以自定义各种东西,从xsd:
<xs:attribute name="pattern" use="optional" type="xs:string" default="common"/>
<xs:attribute name="worker" use="optional" type="xs:string" default="default"/>
<xs:attribute name="directory" use="optional" type="xs:string" default="${jboss.server.log.dir}"/>
<xs:attribute name="relative-to" use="optional" type="xs:string" />
<xs:attribute name="prefix" use="optional" type="xs:string" default="access_log"/>
<xs:attribute name="suffix" use="optional" type="xs:string" default=".log"/>