跳到主要内容

配置日志记录

本节提供有关使用消息 API 日志记录的信息,包括以下 API:

  • JCSMP
  • Java RTO API
  • C 和 .NET API
  • JavaScript 和 Node.js API

有关 PubSub+ Java API 中日志记录的信息,请参阅 PubSub+ Java API 中的配置日志记录。

JCSMP

JCSMP 使用 Apache Commons Logging 来支持不同的日志框架,例如 log4jjava.util.logging 作为应用程序的日志框架。

要启用 Kerberos 事件的日志记录,将 Java 系统属性设置为以下内容:-Dsun.security.krb5.debug=true

级别描述
Fatal这些日志级别保留用于内部错误,应作为调查的原因。对于此级别的日志事件,请联系 Solace 客户支持。
Error
Warn表示应用程序错误(例如,传递了无效参数或对 API 的不支持使用)。
Info通常用于高级别的状态变化(例如,连接/断开连接/重新连接)。
也用于不表示任何错误但意外且可能需要调查的不寻常事件。
Debug此日志级别内容丰富,通常需要 Solace 客户支持来解释。
Trace不使用。

Java 支持的日志级别

当设置给定级别的日志级别时,所有比选定级别不严重的日志事件将被过滤掉,所有同等或更严重的日志级别将被包含。例如,如果选择了 Error 日志过滤级别,则仅包含 ErrorFatal 事件。

Java 设计师应熟悉此类日志框架,因为它们是基于 Java 系统的既定标准。但是,您应考虑以下几点:

  • 当使用 log4j 时,包含 log4j.properties 文件和 log4j.jar 文件的目录应在类路径上。
  • 当使用 log4j 时,仅将 log4j.jar 库文件包含在类路径上而不包含 log4j.properties 会负面影响性能。

Java RTO API

Java RTO API 使用 Java 默认的 java.util.logging 框架。Java RTO API 中的日志级别与 C API 中的某些日志级别相对应。下表显示了 API 之间的日志级别映射。

Java RTO 级别匹配的 C 级别描述
SevereCritical这些日志级别保留用于内部错误,应作为调查的原因。对于此级别的日志事件,请联系 Solace 客户支持。
Error
WarningWarn表示应用程序错误(例如,传递了无效参数或对 API 的不支持使用)。
InfoNotice保留用于不表示任何错误但意外且可能需要调查的不寻常事件。
FineInfo通常用于高级别的状态变化(例如,连接/断开连接/重新连接)。
FinestDebug此日志级别内容丰富,通常需要 Solace 客户支持来解释。

Java RTO 支持的日志级别

当设置给定级别的日志级别时,所有比选定级别不严重的日志事件将被过滤掉;所有同等或更严重的日志级别将被包含。例如,如果选择了 Warning 日志过滤级别,则仅包含 WarningSevere 事件。相比之下,如果选择了 Fine 日志过滤级别,则包含 FineInfoWarningSevere 事件,而 Finest 级别将被过滤掉。

C和.NET API

C 和 .NET API 中的日志记录没有任何外部依赖。这些 API 按照 syslog (RFC 3164) 支持日志级别。下表列出了支持的日志级别。

级别描述
Critical这些日志级别保留用于内部错误,应作为调查的原因。对于此级别的日志事件,请联系 Solace 客户支持。
Error
Warn表示应用程序错误(例如,传递了无效参数或对 API 的不支持使用)。
Notice保留用于不表示任何错误但意外且可能需要调查的不寻常事件。
Info通常用于高级别的状态变化(例如,连接/断开连接/重新连接)。
Debug此日志级别内容丰富,通常需要 Solace 客户支持来解释。

C 和 .NET 支持的日志级别

当设置给定级别的日志级别时,所有比选定级别不严重的日志事件将被过滤掉;所有同等或更严重的日志级别将被包含。例如,如果选择了 Error 日志过滤级别,则仅包含 ErrorCritical 事件。相比之下,如果选择了 Info 日志过滤级别,则包含 InfoNoticeWarnErrorCritical 事件,而 Debug 级别将被过滤掉。

在初始化 API 时可以设置日志级别和日志事件回调或委托。

PubSub+ 消息 API通过...设置
CsolClient_log_setCallback(...)
.NETContextFactoryProperties.LogDelegate

要设置日志回调或委托

相关示例

有关如何将 C API 和 .NET API 生成的日志重定向到 stdout 的示例,请参阅 RedirectLogs 示例。

您可以在 Logging.java 示例文件中看到如何处理 API 生成的日志的示例。

您可以在 Solace Developers 上找到这些示例。

JavaScript和Node.js API

JavaScript 和 Node.js API 的默认日志级别为 INFO。如果要更改日志级别,请在调用 solace.SolclientFactory.init 后使用 solace.SolclientFactory.setLogLevel 方法。下表列出了支持的日志级别。

例如:

  • 要加载 JavaScript API 的调试变体,选择版本 10 API 配置文件,并将日志级别设置为 TRACE,请在应用程序的入口点添加以下内容:
<head>
<script src="solclient-debug.js"></script>
<script type="text/javascript">
var properties = new solace.SolclientFactoryProperties();
properties.profile = solace.SolclientFactoryProfiles.version10;
solace.SolclientFactory.init(properties);
solace.SolclientFactory.setLogLevel(solace.LogLevel.TRACE);
</script>
</head>
  • 要加载 Node.js API 的调试变体,选择版本 10 API 配置文件,并将日志级别设置为 TRACE,请在应用程序的入口点添加以下内容:
var solace = require('solclientjs').debug;
var properties = new solace.SolclientFactoryProperties();
properties.profile = solace.SolclientFactoryProfiles.version10;
solace.SolclientFactory.init(properties);
solace.SolclientFactory.setLogLevel(solace.LogLevel.TRACE);

有关 JavaScript 和 Node.js 行为配置文件的更多信息,请参阅初始化和监控 API。有关 JavaScript 和 Node.js API 变体的更多信息,请参阅编码和编译指南。

级别描述
Fatal这些日志级别保留用于内部错误,应作为调查的原因。对于此级别的日志事件,请联系 Solace 客户支持。
Error
Warn表示应用程序错误(例如,传递了无效参数或对 API 的不支持使用)。
Info保留用于不表示任何错误但意外且可能需要调查的不寻常事件。
Debug通常用于高级别的状态变化(例如,连接/断开连接/重新连接)。也用于不表示任何错误但意外且可能需要调查的不寻常事件。
Trace此日志级别内容丰富,通常需要 Solace 客户支持来解释。

JavaScript 和 Node.js 支持的日志级别

当设置给定级别的日志级别时,所有比选定级别不严重的日志事件将被过滤掉;所有同等或更严重的日志级别将被包含。例如,如果选择了 Error 日志过滤级别,则仅包含 ErrorFatal 事件。