2011-01-05 95 views
5

當JBoss運行時運行時,如何清除JBoss的server.log文件?當我嘗試做如何在JBoss中清除server.log?

echo 1 > server.log 

我得到錯誤味精的文件正被另一個程序(JBoss的)使用。是否可以使用命令行工具(windowslinux(我確實有CygWin))或我可以自己寫清除該文件的應用程序?

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

回答

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

只要日誌進程正在運行,JBoss就會鎖定文件。

如果啓用了JMX控制檯,則可以停止日誌記錄,刪除/修改日誌並再次啓動日誌記錄服務。

的URL看起來應該像這樣(爲log4j的):

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

我測試了與JBoss 5

這個解決方案應該是編寫腳本也是如此。

關於您的日誌文件大小問題:您應該使用配置方法而不是手動編輯日誌文件。