Hyperledger Fabric:如何实时查看 Java 链码的调试输出?

Hyperledger Fabric: how to view debug output of Java chaincode in real-time?

在我的 Java 链代码中,我有以下几行:

private static final Logger logger = LogManager.getLogger(Working.class);

// chaincode logic...

} catch (Throwable e) {
    // some exception handling...
    logger.error(e.getMessage(), e);
    // ...more exception handling
}

// ...more chaincode logic...

logger.debug("[HashtagDebug] start invoke() calling " + stub.getFunction()); //deliberately planted debug

// ...and so on so forth...

我想在 运行 我的客户端应用程序中实时查看这些链代码调试。到目前为止,我已经试过了

docker logs -f --tail 0 <container id of peer node>

但是调试输出很多,更重要的是,我无法找到我植入的那些调试线。我在寻找调试行的错误位置吗? Where/how 我应该看吗?

当链代码在对等节点上实例化时,对等节点会生成一个单独的链代码容器,其名称类似于 dev-(peername)-(chaincodename)-(chaincode version)。 检查 docker ps 您的真实姓名。该容器的日志包含您的链代码写入 stdout/stderr 的所有内容(确保您的日志记录正确 configured/enabled)。

当您实例化链代码时,peer 会为 运行 这个链代码创建一个新的 docker 容器,如 barnet2k7 所述。此容器将有一个名为 'CORE_CHAINCODE_LOGGING_LEVEL' 的环境变量。通常,此环境变量设置为 'info',因此您只会看到 'info' 级别的日志记录。要将此变量设置为 'debug',您可以在合约 docker 容器 运行 中手动设置环境变量,或者您可以将此环境变量配置到具有所需日志记录的对等体中级别,因此实例化的每个合约都将设置为该级别。