Tomcat

获得Tomcat的内存信息

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
/**
* 获得Tomcat的内存信息
* @return
*/

private Map<String, Object> getMemoryInfo() {
Map<String, Object> memDataMap = new HashMap<String, Object>();

double MB = 1024.0 * 1024.0;

//当前JVM的最大可用内存
double maxMemory = (Runtime.getRuntime().maxMemory()) / MB;

//当前JVM占用的内存总数
double totalMemory = (Runtime.getRuntime().totalMemory()) / MB;

//因为JVM只有在需要内存时才占用物理内存使用,所以freeMemory()的值一般情况下都很小
double freeMemory = (Runtime.getRuntime().freeMemory()) / MB;

//JVM实际可用内存
double totalUsableMemory = maxMemory - totalMemory + freeMemory;

memDataMap.put("totalUsableMemory", totalUsableMemory);
memDataMap.put("totalMemory", totalMemory);
memDataMap.put("maxMemory", maxMemory);

NumberFormat nt = NumberFormat.getPercentInstance();
nt.setMinimumFractionDigits(2);
memDataMap.put("memUsage", nt.format(totalMemory / maxMemory));

return memDataMap;
}

tomcat启动不报错但是服务也没有启动成功

之前遇到了一次tomcat启动时没有报任何错误,但是服务也没有启动成功,访问不了,后来同事帮忙在网上找到这样一篇文章,这里记录下
DEBUGGING THE DREADED “SEVERE: ERROR LISTENERSTART” AND “SEVERE: ERROR FILTERSTART” TOMCAT ERROR MESSAGES

具体操作:

  1. 中web application下的WEB-INF/classes路径中创建logging.properties文件,其内容为:

    1
    org.apache.catalina.core.ContainerBase.[Catalina].level = INFO //INFO级别可以更改
    org.apache.catalina.core.ContainerBase.[Catalina].handlers = java.util.logging.ConsoleHandler
  2. 启动服务,这个时候错误就会打印到控制台(catalina.out)