我开发了一个Java应用,部署到云环境上之后,用postman测试发现不能按照我期望的工作,但是返回的消息对我没有任何帮助。

因为部署在云端的应用很难像本地Java应用一样调试,所以我打算用SLF4J在Java代码里添加一些日志,然后查看该Java应用在云端执行产生的日志来排查问题。

SLF4J的全称是Simple Logging Facade for Java, 即简单日志门面,这里的Facade实际上是面向对象的设计模式中的外观模式(Facade pattern)。SLF4J不是具体的日志解决方案,它本身不包含日志记录的具体实现,而是只提供一个外观给各种各样的日志系统,这样就给具体应用提供了很大的灵活度,使得最终用户在部署其应用时可以灵活选用其所希望的日志系统。

SLF4J的使用非常简单,在您的应用代码里将SLF4J的Logger和LoggerFactory导入:

import org.slf4j.Logger;

import org.slf4j.LoggerFactory;

然后在引用代码里用LoggerFactory获得logger实例:

static private Logger logger = LoggerFactory.getLogger(XCDService.class);

然后用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的原创技术文章,请关注公众号"汪子熙"或者扫描下面二维码:

最新文章

  1. 吸顶大法 -- UWP中的工具栏吸顶的实现方式之一
  2. 使用jquery的imagecropper插件做用户头像上传 兼容移动端
  3. Android的两种上下文的区别
  4. Routed Events【pluralsight】
  5. ios上比较好用的Cydia插件
  6. python pdb调试模块使用
  7. iOS与日期相关的操作
  8. Mac OS X 系统下快速显示隐藏文件的方法(使用Automator创建workflow)
  9. openwrt上网配置的一些理解(四)
  10. 《团队-OldNote-项目总结》
  11. Aras 发布Web Services
  12. centos7下使用LVM给系统硬盘扩容超详细
  13. 学习用Node.js和Elasticsearch构建搜索引擎(5):mac本机部署canal
  14. Qt ------ 在 ubuntu 内安装 Qt creator
  15. Centos7搭建OpenVPN服务器
  16. java有车有房有能力最基本运用
  17. 无图形界面安装CentOS
  18. Docker 利用registry创建私有仓库
  19. MySQL升级方法一
  20. poj3814

热门文章

  1. HDU 1711(KMP)字符串匹配
  2. javascript之数组的6种去重方法
  3. struct 结构体解析(原)
  4. Bug: CCScheduler#scheduleSelector. Selector already scheduled. Updating interval from: 0.0000 to 0.0000
  5. Android 开发:由模块化到组件化
  6. Python之路,Day13 - 堡垒机
  7. 一些好用的Linux命令组合
  8. FTP相关内容
  9. ASP.NET Core MVC 2.x 全面教程_ASP.NET Core MVC 07. View的Model 和 Tag Helpers
  10. 18-Angular 自定义模块以及配置路由模块懒加载