JASIG CAS:如何更改日志文件的写入位置?

时间:2012-02-28 23:32:12

标签: java tomcat tomcat6 cas jasig

我知道非常关于Java,更不用说JASIG CAS了。

我们正在尝试在CentOS 6服务器上实施CAS。我们收到以下错误:

java.io.FileNotFoundException: cas.log (Permission denied)
[...snip...]
java.io.FileNotFoundException: perfStats.log (Permission denied)

经过一些调查后,似乎tomcat6正在尝试在其主目录(/usr/share/tomcat6/)中写入日志文件。我能够通过chown tomcat: /usr/share/tomcat6确定这个,然后在重新启动后,在该目录中创建了日志文件。

所有其他日志都写入/usr/share/tomcat6/logs,这是/var/log/tomcat6的符号链接。

我想知道如何重新配置​​CAS以将这2个日志文件写入不同的目录/usr/share/tomcat6/logs)?

1 个答案:

答案 0 :(得分:13)

假设您有最新版本的CAS,它使用log4j进行日志记录,您可以在

中找到log4j配置
$CATALINA_BASE/webapps/cas-server-webapp-VERSION/WEB-INF/classes/log4j.xml

对于CentOS下的标准Tomcat安装,$CATALINA_BASE将为/usr/share/tomcat

如果您的log4j配置尚未更改,您将在文件顶部附近找到一个名为“cas”的appender,负责创建cas.log。它看起来像这样:

<appender name="cas" class="org.apache.log4j.RollingFileAppender">
    <param name="File" value="cas.log" />
    <param name="MaxFileSize" value="512KB" />
    <param name="MaxBackupIndex" value="3" />
    <layout class="org.apache.log4j.PatternLayout">
        <param name="ConversionPattern" value="%d %p [%c] - %m%n"/>
    </layout>
</appender>

再向下,你会发现另一个名为“fileAppender”的追加器,它会创建perfStats.log文件。

<appender name="fileAppender" class="org.apache.log4j.FileAppender">
    <param name="File" value="perfStats.log"/>
    <layout class="org.apache.log4j.PatternLayout">
        <param name="ConversionPattern" value="%m%n"/>
    </layout>
</appender>

查看File参数的值是如何只是没有指定目录的文件名?因此,日志文件将在$ CATALINA_BASE目录中创建。要将它们放入您想要的Tomcat日志目录中,只需将值更改为logs/cas.loglogs/perfStats.log

请注意,CAS仅在启动时读取log4j配置,因此一旦您进行了更改,您将必须取消部署并重新部署CAS或退回Tomcat才能使其生效。