Skip to content

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 支持日志级别 DEBUGINFOERROR

以下示例说明了如何将 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-classiclog4j-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'
}

Last update: March 22, 2023