前后端分离开发,日志应该如何进行记录,在出现问题的时候,方便定位问题?
项目开发中尽量使用日志记录API如log4j或是java.util.logging,比如log4j就有几个日志等级,DEBUG, INFO, WARN,ERROR和FATAL。
DEBUG是最低的限制级别。这个级别只能用于开发和测试环境中,不可以用于生产环境。
INFO略高于DEBUG的限制级别,我们应该用这个级别记录一些信息型消息比如服务器启动成功,输入的数据,输出的数据等等。
WARN的限制级别高于INFO,它用来记录警告信息比如客户端和服务器之间的连接中断,数据库连接丢失,Socket达到上限。这些信息是最为重要的,因为你可以在这些信息出现时发出警告,从而让运维团队管理应用程序的运行,并及时处理这些报错。
ERROR比WARN的限制级别还高,用于记录ERROR和Exception。你可以在该日志级别上设置警报装置,并且提醒运维团队对之做出处理。ERROR非常重要,你必须将其记录下来。
FATAL是指可能导致程序终止的非常严重的时间。在这种事件之后你的应用很可能会崩溃。
记录的日志越多越有利于问题的排查,但是日志记录的越频繁,所需要的IO操作就越多,从而影响系统性能。可以使用这种方式:
在isDebugEnabled()代码块中记录DEBUG消息
if(logger.isDebugEnabled()){
logger.debug("java logging level is DEBUG Enabled")
}