项目实训-千寻-服务端代码集成测试

部署Tomcat到阿里云后,调试确实成了很大的问题。之前在本地,可以直接通过控制台查看相关信息,而到了阿里云上面,则主要通过Log来看相关的信息了。


1.日志详细程度调整
Tomcat报的错太含糊了,什么错都没报出来,只提示了Error listenerStart。为了调试,我们要获得更详细的日志。可以在WEB-INF/classes目录下新建一个文件叫logging.properties,内容如下:
handlers = org.apache.juli.FileHandler, java.util.logging.ConsoleHandler  
############################################################  
# Handler specific properties.  
# Describes specific configuration info for Handlers.  
############################################################  
org.apache.juli.FileHandler.level = FINE  
org.apache.juli.FileHandler.directory = ${catalina.base}/logs  
org.apache.juli.FileHandler.prefix = error-debug.  
java.util.logging.ConsoleHandler.level = FINE  
java.util.logging.ConsoleHandler.formatter = java.util.logging.SimpleFormatter

这样,我们再启动tomcat时,就会在logs目录下生成一个更详细的日志error-debug.xxxx-xx-xx.log。


2.控制台打印信息重定向
在服务端打印信息时,如果程序跑起来,在Tomcat的运行界面中是可以看到System.out.println()方法打印的信息的。但打印的这串信息在log文件中找不到,如果测试环境和正式环境不一样,正式环境又不能调试,那么这个问题就有点奔溃了。Tomcat执行的界面中的信息不像CMD命令一样可以复制。所以就只能另外想办法了。
通过如下这次代码就可以把想要打印出来的信息输出到指定的文件中了。
//----测试打印-----
PrintStream out = System.out;  
PrintStream ps = new PrintStream("/home/root/logs/log.txt"); 
System.setOut(ps); 
System.out.println("打印日志到指定的文件中。");
//切换回打印到控制台 
System.setOut(out);  
System.out.println("程序运行完毕,请查看日志。");


3.防止日志占满磁盘
提高输出日志的级别
编辑conf/logging.properties
[html] view plain copy print?
1catalina.org.apache.juli.FileHandler.level = WARNING  
1catalina.org.apache.juli.FileHandler.directory = ${catalina.base}/logs  
1catalina.org.apache.juli.FileHandler.prefix = catalina.  
2localhost.org.apache.juli.FileHandler.level = WARNING  
2localhost.org.apache.juli.FileHandler.directory = ${catalina.base}/logs  
2localhost.org.apache.juli.FileHandler.prefix = localhost.  
3manager.org.apache.juli.FileHandler.level = FINE  
3manager.org.apache.juli.FileHandler.directory = ${catalina.base}/logs  
3manager.org.apache.juli.FileHandler.prefix = manager.  
4host-manager.org.apache.juli.FileHandler.level = FINE  
4host-manager.org.apache.juli.FileHandler.directory = ${catalina.base}/logs  
4host-manager.org.apache.juli.FileHandler.prefix = host-manager.  
java.util.logging.ConsoleHandler.level = WARNING  
java.util.logging.ConsoleHandler.formatter = java.util.logging.SimpleFormatter  

将FINE级别提升到WARNING,或其他
SEVERE > WARNING > INFO > CONFIG > FINE > FINER > FINEST


4.Log文件夹下各个文件介绍
Cataline引擎的日志文件,文件名catalina.日期.log
Tomcat下内部代码丢出的日志,文件名localhost.日期.log(jsp页面内部错误的异常,org.apache.jasper.runtime.HttpJspBase.service类丢出的,日志信息就在该文件)
Tomcat下默认manager应用日志,文件名manager.日期.log
控制台输出的日志,Linux下默认重定向到catalina.out 


参考网址:

http://tomcat.apache.org/tomcat-6.0-doc/logging.html


你可能感兴趣的:(项目实训)