我开发了一个Java应用,部署到云环境上以后,用postman测试发现不能按照我指望的工做,可是返回的消息对我没有任何帮助。java
由于部署在云端的应用很难像本地Java应用同样调试,因此我打算用SLF4J在Java代码里添加一些日志,而后查看该Java应用在云端执行产生的日志来排查问题。json
SLF4J的全称是Simple Logging Facade for Java, 即简单日志门面,这里的Facade其实是面向对象的设计模式中的外观模式(Facade pattern)。SLF4J不是具体的日志解决方案,它自己不包含日志记录的具体实现,而是只提供一个外观给各类各样的日志系统,这样就给具体应用提供了很大的灵活度,使得最终用户在部署其应用时能够灵活选用其所但愿的日志系统。设计模式
SLF4J的使用很是简单,在您的应用代码里将SLF4J的Logger和LoggerFactory导入:服务器
import org.slf4j.Logger; import org.slf4j.LoggerFactory;
而后在引用代码里用LoggerFactory得到logger实例:app
static private Logger logger = LoggerFactory.getLogger(XCDService.class);post
而后用logger.info进行日志记录。测试
将加了SLF4J日志记录的代码从新上传到云平台上。我用的是SAP云平台。设计
登陆SAP云平台的控制台,点击Logging标签页:调试
点Configure Loggers:日志
由于个人应用代码放在com.sap.service包下面,因此我根据这个包名进行过滤:
将这两个Logger对应的Log Level日志级别设置成INFO:
再次用postman请求部署在SAP云平台上的服务,而后去云平台控制台上查看生成的日志文件:
点击查看按钮便可看到日志的具体内容,一会儿就定位出问题的缘由了。我在服务器端的HTTP响应头字段Content-type设置的值为application/json,可是返回的JSON字符串不符合JSON格式规范。把这个bug改掉以后错误就解决了。
要获取更多Jerry的原创技术文章,请关注公众号"汪子熙"或者扫描下面二维码: