发表于: 2017-05-11 23:07:16
0 1214
今天完成的事情:
1、下午准备了小课堂《为什么要用log4j代替System.out.println》。将log4j 的知识点又复习了一遍,为了不出错,我把之前都不太懂的地方又反复的查找资料确认。小课堂的视频还在腾讯视频审核,先把提出的五个问题解答在今天的收获中。
2、任务8实在是做不出来了,上午就看师兄各个师兄的日报。发现除了client、server端,大家还写了一个core。core中包含了一个client和server端共同调用的接口StudentService,一个实现了Serializable的实体类,这个实体类可以在client端和server端传输可序列化的对象。
明天计划的事情:
从头开始做任务8吧。先写一个简单的web、core、service三层结构出来。
遇到的问题:
问题:那么Serializable序列化接口?序列化的对象是什么?
当一个类实现了Serializable接口(该接口仅为标记接口,不包含任何方法定义),表示该类可以序列化.
序列化的目的是将一个实现了Serializable接口的对象转换成一个字节序列,可以把该字节序列保存起来(例如:保存在一个文件里),以后可以随时将该字节序列恢复为原来的对象。甚至可以将该字节序列放到其他计算机上或者通过网络传输到其他计算机上恢复,只要该计算机平台存在相应的类就可以正常恢复为原来的对象。
那实体类为什么要序列化呢?
序列化的字节序列在哪里?
序列化生成的字节序列和stub(存根)有关系吗?
server启动main方法,ApplicationContext注入studentServiceExporter这个bean的时候,会出现无法连接到本地服务器的情况?
收获:
关于log4j 的五个问题:
(1)什么情况使用log4j、什么情况下使用System.out.println?
System.out.println在开发中可以使用,部署项目后用日志文件。最好不要用System.out.println。
(2)log4j是否会影响性能?
是的,log4j会拖慢进程响应时间
(3)为什么log4j日志的最高级是error,但error却是“虽然发生错误事件,但仍然不影响系统的继续运行”?
日志有7个等级:
A:off 最高等级,用于关闭所有日志记录。
B:fatal 指出每个严重的错误事件将会导致应用程序的退出。
C:error 指出虽然发生错误事件,但仍然不影响系统的继续运行。
D:warm 表明会出现潜在的错误情形。
E:info 一般和在粗粒度级别上,强调应用程序的运行全程。
F:debug 一般用于细粒度级别上,对调试应用程序非常有帮助。
G:all 最低等级,用于打开所有日志记录。
而log4j建议使用四种:debug、info、warn、error
(4)log4j 的文件保存位置?
存放到项目目录下:
${task5.root}/WEB-INF/logs/log.log
(5)log4j打印堆栈信息?
log.info("xxx", e)
评论