日志在我们日常开发调试的过程中非常重要。一份好的日志,能帮助我们快速找到问题原因,提高代码健壮性。这里就简单介绍一些记录日志的方法,还有一些应该注意的地方,供大家参考。
1.日志输出到文件
在资源(resources)目录下添加日志配置文件 logback-spring.xml,通过配置,将日志记录在指定的文件中。
1 | <?xml version="1.0" encoding="UTF-8"?> |
2.不要用 e.printStackTrace()
原因很简单,因为它是将异常输出在控制台,这个操作需要字符串常量池所在的内存块有足够的空间。然而,因为 e.printStackTrace() 语句要产生的字符串记录的是堆栈信息,太长太多,内存很容易被填满!如果大量线程产出字符串产出一半后,发现内存不够了,那么就会等待内存被释放,但这个时候内存又是释放不了的,所以等待的线程不断堆积,造成锁死,导致整个应用挂掉。
除此以外,e.printStackTrace() 的信息也不会输出到 error.log 日志文件中,这会给我们在调试生产环境问题的时候带来很多困难。如果我们用的是 slf4j 来管理日志,那么正确记录堆栈信息的写法是:
1 | private static final Logger LOGGER = LoggerFactory.getLogger(Test.class); |