2013-06-12 69 views
4

我需要監視java應用程序,我正在使用javamelody。更改javamelody的存儲目錄

但問題是,我必須得到javamelody的數據,以便我可以在另一個屏幕上顯示它。我知道javamelody將其rdd文件存儲在temp/javamelody目錄中,現在我需要將存儲目錄更改爲另一個路徑,以便從該路徑獲取數據。

可以這樣做嗎?

謝謝

+0

'java -Djava.io.tmpdir =/new/tmp yourjar'(在Linux上)或設置'%TMP%'(在Windows上)應該可以做到。 –

+0

該命令只能用於具有主類的項目。 javamelody是一個庫,它沒有任何主類。如何使用沒有主類的庫類的命令? – Algorithman

+0

哈,甚至更好:http://code.google.com/p/javamelody/wiki/UserGuide並滾動到「存儲目錄」,這看起來像你想要的。 –

回答

5

哦,我想我已經找到了答案 我只需要設置命令行或XML文件中的tomcat我這樣

<?xml version="1.0" encoding="UTF-8" ?> 
<Context docBase="pathto\appname.war" path="javamelody" reloadable="false" > 
     <Parameter name='javamelody.storage-directory' value='pathname' override='false'/> 
</Context> 

謝謝你的幫助:d

+0

在這種情況下,它被稱爲「上下文參數」(在'context.xml'文件中設置),而不是命令行選項:)很高興你已經管理,歡呼;) –

0

春天引導

public class JavaMelodyConfiguration implements ServletContextInitializer { 

@Value(value="${javamelody.storage-directory}") 
String jmStorageDir; 

@Override 
public void onStartup(ServletContext servletContext) throws ServletException { 
    servletContext.addListener(new SessionListener()); 
    servletContext.setInitParameter("javamelody.storage-directory", jmStorageDir); 
} 

,那麼你可以設置javam elody.storage目錄中application.properties

1

在web.xml,定義濾波器javamelody用如下參數storage-directory

<filter> 
    <filter-name>javamelody</filter-name> 
    <filter-class>net.bull.javamelody.MonitoringFilter</filter-class> 
    <init-param> 
     <param-name>storage-directory</param-name> 
     <param-value>/path/to/the/storage/directory</param-value> 
    </init-param> 
</filter> 

我測試使用JavaMelody版本1.60.0。欲瞭解更多信息,請參閱the JavaMelody user guide