当 JBoss正在运行时,如何清除JBoss的server.log文件?我试图做的时候
echo 1 > server.log
我收到另一个程序(JBoss)正在使用文件的错误信息。是否可以使用命令行工具( windows 或 linux (我确实有 CygWin ))或我自己编写的应用程序清除该文件?
P.S。我不需要该文件有0kb,但我希望它小于100MB 。
答案 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):
我用JBoss 5进行了测试。
此解决方案也应该是可编写脚本的。
关于日志文件大小问题:您应该使用配置方法而不是手动编辑日志文件。