5

JBoss 运行时如何清除 JBoss 的 server.log 文件?当我尝试做

echo 1 > server.log

我收到错误消息,表明该文件正在被另一个程序(JBoss)使用。是否可以使用命令行工具(windowslinux(我有CygWin))或我可以自己编写的应用程序来清除该文件?

PS我不需要那个文件有 0kb,但我希望它小于 100MB

4

2 回答 2

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)。

于 2011-01-05T11:15:20.440 回答
1

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

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

url 应该看起来像这样(对于 log4j):

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

我用 JBoss 5 对此进行了测试。

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

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

于 2012-11-07T12:34:58.637 回答