我开发了一个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的原创技术文章,请关注公众号"汪子熙"或者扫描下面二维码:
相关推荐
下面将详细介绍如何在非Web工程中使用SLF4J进行日志记录。 1. **添加依赖**: 在使用SLF4J之前,首先需要在项目的类路径中包含SLF4J的API jar包以及一个具体的日志实现库,例如Logback或Log4j。在Maven项目中,...
- **API层**:SLF4J提供了简单的API,供开发者在应用程序中使用,如`Logger logger = LoggerFactory.getLogger(MyClass.class);`,`logger.info("Hello, World!");`。 - **绑定层**:SLF4J API本身不实现日志记录,...
这个特性使得Slf4j在Java开发中广泛应用,为日志记录提供了极大的灵活性。 在这个压缩包中,包含了以下三个关键的Slf4j相关jar文件: 1. `slf4j-api-1.6.6.jar`:这是Slf4j的核心API库,包含了用于日志记录的基本...
描述中的"slf4j_and_slf4j_simple.png"可能展示了如何使用SLF4J最基础的功能,而"slf4j_and_slf4j_jdk.png"可能涉及了如何将SLF4J与Java内置日志系统集成。"slf4j_and_slf4j-log4j.png"则可能演示了如何配置SLF4J与...
SLF4J API的使用则是在代码中引入相应的依赖,并通过SLF4J的LoggerFactory获取Logger对象进行日志记录。 总的来说,`log4j`、`SLF4J`和`slf4j-log4j12`的结合,为Java应用程序提供了一种高效、可扩展且灵活的日志...
SLF4J(Simple Logging Facade for Java)是Java中一个用于日志记录的抽象层,它提供了一种标准的日志记录接口,使得开发者可以选择不同的日志实现框架,如Log4j、Logback等。MongoDB则是一个流行的NoSQL数据库系统...
这个jar包是SLF4J的核心组件,用于在应用程序中引入日志功能。 **SLF4J的基本概念:** 1. **API接口**:SLF4J提供了统一的日志API,定义了各种日志级别(TRACE, DEBUG, INFO, WARN, ERROR, OFF)以及相关的方法,如...
SLF4J(Simple Logging Facade for Java)是Java日志记录领域的一个重要库,它为各种日志框架,如Logback、Log4j、Java内置的日志API(java.util.logging)等,提供了一个简单统一的接口。这个接口使得开发者在开发...
总的来说,"log4j-slf4j+logback1.3.0"的组合提供了一个强大、灵活的日志解决方案,允许开发者使用统一的API进行日志记录,同时利用Logback的高性能和丰富特性。通过正确配置这些组件,开发者可以轻松管理和优化Java...
总的来说,这个压缩包提供了SLF4J的基础和Log4j的绑定,适用于需要使用SLF4J进行日志记录,并希望日志通过Log4j输出的Java项目。尽管版本可能不是最新的,但在很多情况下,旧版本的稳定性和兼容性是优先考虑的因素。...
SLF4J 1.7.12版本是该库的一个稳定版本,包含了各种必需的JAR包和整合资料,以帮助开发者在他们的应用程序中实现灵活的日志记录。 SLF4J的主要优点在于它的可插拔性。通过使用SLF4J,开发者可以在不修改代码的情况...
这样,项目中的代码可以使用SLF4J的API进行日志记录,而实际的日志输出则通过log4j框架完成。 SLF4J的使用有以下几个关键点: 1. **接口定义**:SLF4J提供了一系列的Logger接口,如LoggerFactory,用于创建日志对象...
1. **slf4j.api-1.6.1.jar**:这是SLF4J的核心API库,包含了所有SLF4J的接口和注解,使得开发者可以在代码中使用SLF4J的API进行日志记录。例如,`org.slf4j.Logger`和`org.slf4j.LoggerFactory`是SLF4J中最常用的类...
Slf4j作为一个抽象层,为Java应用程序提供了一种统一的日志记录接口,而Log4j则是一个具体且功能丰富的日志框架。通过Slf4j,我们可以轻松地在不同的日志实现之间切换,而不需要修改代码。在实际项目中,结合使用Slf...
这意味着你可以使用SLF4J的接口,但日志实际上会通过Log4j 2进行处理。这个绑定使得在项目中同时使用SLF4J的抽象和Log4j 2的特性成为可能。 使用这两个库时,通常需要一个配置文件(如`log4j2.xml`或`log4j2.json`...
SLF4J(Simple Logging Facade for Java)和Log4j是两个广泛使用的日志框架,它们在Java生态系统中占据着重要地位,包括Android开发。 SLF4J是一个接口层,它提供了一组通用的日志API,允许开发者选择任何兼容的...
总结,SLF4J和Log4j的组合使用让日志管理更加灵活,开发者可以通过SLF4J的简洁API进行日志记录,同时利用Log4j的强大功能,如自定义输出格式和多种输出目的地。通过适当的配置和测试,我们可以确保日志系统按照预期...
SLF4J(Simple Logging Facade for Java)是Java日志记录的一个接口层,它为各种日志框架,如Log4j、Logback等提供了一个简单的抽象层,使得最终用户能够在部署时插入所需的日志实现。SLF4J 1.5.8是该库的一个特定...
SLF4J(Simple Logging Facade for Java)是Java中的一种日志抽象层,它为各种日志框架,如Log4j、Logback等提供了一个统一的接口。SLF4J的设计目标是允许最终用户在部署其应用程序时插入所需的日志库。这样,开发者...