dileep.a.s@siemens.com jerik.olfermann.ext@siemens.com sebastian.haenisch@siemens.com pruthula.s@siemens.com title: MindSphere SDK - 日志 - 开发文档
MindSphere SDK for Java - 日志¶
简介¶
MindSphere SDK for Java 的日志功能通过 SLF4J(Java 简单日志门面)实现,利用 SLF4J 可以访问很多日志框架,如 Log4j 或 java.util.logging。这允许最终用户插入所需的日志框架。本部分介绍如何在不更改应用代码的情况下将 Log4j 或 Logback 用于 SDK 日志功能。
注意
不要为 MindSphere SDK for Java 版本 1.1.0 启用 SDK 日志,因为该版本会记录服务凭证。如果已经启用,请将其禁用。若要禁用,请参见禁用日志部分。
利用 Log4j 或 Logback 实现 SDK 日志功能¶
准备工作¶
为实现 MindSphere SDK 日志功能准备 Log4j¶
如果想要使用 Log4j 实现 MindSphere SDK 日志功能,需下载 SLF4J-Log4J12 jar 和 Log4J jar。构建项目并确保 jar 可用作项目相关项。
必须在根资源文件夹 src\main\resources
中提供配置文件 log4j.properties
。
为实现 MindSphere SDK 日志功能准备 Logback¶
如果想要使用 Logback 实现 MindSphere SDK 日志功能,需将 logback-classic jar 添加至项目相关项。
必须在根资源文件夹 src\main\resources
中提供配置文件 logback.xml
。
说明
如果应用是 spring-boot-starter 项目,则 logback-classic
jar 为隐式可用。
启用日志记录并设置日志级别¶
日志级别必须在日志框架的配置文件中配置。MindSphere SDK 支持日志级别 DEBUG
、INFO
和 ERROR
。
以下示例说明了如何将 rootLogger 设置为 DEBUG
,这将使来自应用中所有记录器的信息、警告和错误消息被记录下来:
```bash tab="Log4j"
在 log4j.properties 文件中设置日志级别¶
log4j.rootLogger=DEBUG, stdout log4j.appender.stdout=org.apache.log4j.ConsoleAppender log4j.appender.stdout.layout=org.apache.log4j.PatternLayout log4j.appender.stdout.layout.ConversionPattern=%d %p (%t) [%c] - %m%n
```xml tab="Logback"
<!-- set log level in the logback.xml file -->
<?xml version="1.0" encoding="UTF-8"?>
<configuration>
<appender name="STDOUT" class="ch.qos.logback.core.ConsoleAppender">
<layout class="ch.qos.logback.classic.PatternLayout">
<Pattern>
%d{yyyy-MM-dd HH:mm:ss} [%thread] %-5level %logger{36} - %msg%n
</Pattern>
</layout>
</appender>
<root level="DEBUG">
<appender-ref ref="STDOUT"/>
</root>
</configuration>
以下示例说明了如何仅为 MindSphere SDK 设置日志级别:
```bash tab="Log4j"
set log level in the log4j.properties file¶
log4j.logger.com.siemens.mindsphere.sdk = INFO
```xml tab="Logback"
<!-- set log level in the logback.xml file -->
<logger name="com.siemens.mindsphere.sdk" level="INFO"/>
禁用日志记录¶
MindSphere SDK 日志可以通过在配置文件中将日志级别设置为 OFF
来禁用:
```bash tab="Log4j"
disable logging in the log4j.properties file¶
log4j.logger.com.siemens.mindsphere.sdk = OFF
```xml tab="Logback"
<!-- disable logging in the logback.xml file -->
<logger name="com.siemens.mindsphere.sdk" level="OFF"/>
Spring-boot-starter 项目
如果您的应用是一个 spring-boot-starter 项目,请在项目 build.gradle
的相关项部分中排除 logback-classic
和 log4j-over-slf4j
模块,如下所示。这是为了确保将 log4j.properties
文件视为日志配置文件。
// Use only if `log4j-over-slf4j` and `logback-classic` are available in project dependencies
compile ('org.springframework.boot:spring-boot-starter-web') {
exclude module : 'log4j-over-slf4j'
exclude module: 'logback-classic'
}