JBoss转储访问日志在〜/ logs中

时间:2014-12-18 18:42:17

标签: jboss

我有一个奇怪的问题,对于单个应用程序,JBoss(EAP 6.0.0)似乎在~/logs的家庭目录中转储访问日志。至少可以说这很烦人。

我的网络应用程序jboss-web.xml文件似乎正常:

<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE jboss-web PUBLIC "-//JBoss//DTD Web Application 2.4//EN"
    "http://www.jboss.org/j2ee/dtd/jboss-web_4_0.dtd">

<jboss-web>
    <context-root>/moore</context-root>

    <!-- http://tomcat.apache.org/tomcat-5.5-doc/config/valve.html#Access_Log_Valve  -->
    <valve>
        <class-name>org.apache.catalina.valves.AccessLogValve</class-name>
        <param>
            <param-name>prefix</param-name>
            <param-value>access_log_moore_</param-value>
        </param>
        <param>
            <param-name>suffix</param-name>
            <param-value>.log</param-value>
        </param>
        <param>
            <param-name>pattern</param-name>
            <param-value>%h %A %l %u %t "%r" %s %b %T %I "%{Referer}i" "%{User-Agent}i"</param-value>
        </param>
        <param>
            <param-name>resolveHosts</param-name>
            <param-value>false</param-value>
        </param>
        <param>
            <param-name>fileDateFormat</param-name>
            <param-value>yyyy-MM-dd-HH</param-value>
        </param>
    </valve>

</jboss-web>

我似乎找不到任何告诉它在~/logs中转储日志的地方,并且所有其他Web应用程序都可以正常登录到JBoss日志目录。如何调试错误配置的位置并将这些日志恢复到JBoss日志目录?

1 个答案:

答案 0 :(得分:1)

我认为在JBoss EAP 6.x中配置访问日志的最佳方法是在domain:web子系统中添加它。 的例如

<subsystem xmlns="urn:jboss:domain:web:1.4" default-virtual-server="default-host" native="false">
    <connector name="http" protocol="HTTP/1.1" scheme="http" socket-binding="http"/>
    <virtual-server name="default-host" enable-welcome-root="true">
        <alias name="localhost"/>
        <alias name="example.com"/>
        <access-log pattern="%h %A %l %u %t &quot;%r&quot; %s %b %T %I  &quot;%{Referer}i&quot; &quot;%{User-Agent}i&quot;" prefix="access_log_moore_" rotate="true">
            <directory path="." relative-to="jboss.server.log.dir" />
        </access-log>
    </virtual-server>
</subsystem>

另请参阅:JBoss EAP 6.0.1 Model Reference

但是,如果您需要/想要在jboss-web.xml的应用程序中使用阀门配置,则必须在配置中添加属性directory,并使用绝对路径登录日志目录。

<强>例如

<jboss-web>
   <context-root>/moore</context-root>
   <valve>
        <!-- ...  -->
        <param>
            <param-name>directory</param-name>
            <param-value>/path/to/jboss/log/dir</param-value>
        </param>
    </valve>
</jboss-web>
directory
     

日志文件所在目录的绝对或相对路径名   由这个阀门创建的将被放置。如果指定了相对路径,   它被解释为相对于$CATALINA_HOME。如果没有目录   指定了属性,默认值为“logs”(相对于   $CATALINA_HOME)。

在JBoss 7 / EAP 6中$CATALINA_HOME未设置,日志在~/logs中创建(在您的情况下)。

参考:https://docs.jboss.org/jbossweb/latest/config/valve.html

我希望这有帮助。