如何在JBoss中清除server.log?

时间:2011-01-05 11:11:02

标签: java linux jboss log4j logfiles

JBoss正在运行时,如何清除JBoss的server.log文件?我试图做的时候

echo 1 > server.log

我收到另一个程序(JBoss)正在使用文件的错误信息。是否可以使用命令行工具( windows linux (我确实有 CygWin ))或我自己编写的应用程序清除该文件?

P.S。我不需要该文件有0kb,但我希望它小于100MB

2 个答案:

答案 0 :(得分:3)

默认情况下,JBoss会将文件锁定,因为它正在将日志消息写入其中。只要JBoss运行它就被锁定,我不知道是否有其他方式来释放它而不是停止JBoss本身。

要控制其大小,您可以修改日志配置,默认情况下为<server>/conf˛jboss-log4j.xml。您可以指定日志文件的最大大小,并定义达到该大小时要执行的操作:转到新文件,截断现有文件并再次开始重写,等等。

一个基本的例子(未经测试,因此无法保证它能够直接工作):

    <appender name="ROLL" class="org.apache.log4j.rolling.RollingFileAppender">
            ...
            <param name="maxFileSize" value="100MB" />
            ...
    </appender>

此外,使用maxBackupIndex参数,您可以定义备份文件的数量(默认值为1)。

答案 1 :(得分:1)

只要日志记录过程正在运行,JBoss就会锁定文件。

如果您启用了JMX控制台,则可以停止日志记录,删除/修改日志,并再次启动日志记录服务。

网址应该如下所示(对于log4j):

http://jboss.example.com:8080/jmx-console/HtmlAdaptor?action=inspectMBean&name=jboss.system%3Atype%3DLog4jService%2Cservice%3DLogging

我用JBoss 5进行了测试。

此解决方案也应该是可编写脚本的。

关于日志文件大小问题:您应该使用配置方法而不是手动编辑日志文件。