我知道非常关于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
)?
答案 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.log
和logs/perfStats.log
。
请注意,CAS仅在启动时读取log4j配置,因此一旦您进行了更改,您将必须取消部署并重新部署CAS或退回Tomcat才能使其生效。