JBoss 运行时如何清除 JBoss 的 server.log 文件?当我尝试做
echo 1 > server.log
我收到错误消息,表明该文件正在被另一个程序(JBoss)使用。是否可以使用命令行工具(windows或linux(我有CygWin))或我可以自己编写的应用程序来清除该文件?
PS我不需要那个文件有 0kb,但我希望它小于 100MB。
默认情况下,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)。
只要日志记录进程正在运行,JBoss 就会锁定文件。
如果您启用了 JMX 控制台,您可以停止日志记录、删除/修改日志并再次启动日志记录服务。
url 应该看起来像这样(对于 log4j):
我用 JBoss 5 对此进行了测试。
该解决方案也应该是可编写脚本的。
关于您的日志文件大小问题:您应该使用配置方法而不是手动编辑日志文件。