在Hyperledger架构中,如何打印出链码函数的消息和日志?

时间:2019-03-15 18:15:05

标签: go hyperledger-fabric

我想通过Golang测试我的链码,所以我使用了Hyperledger织物chaincodedev测试。

chaincode的所有功能(调用,查询等)都可以使用,但是控制台上没有logcode的日志和消息。

在每种情况下,日志记录都设置为“调试”。

我想在控制台上打印出调用,查询的结果消息,但是只打印出消息:“ myc”; “我的C”; “我的C”; ...

2019-03-15 18:07:04.550 UTC [shim] setupChaincodeLogging -> INFO 001 Chaincode log level not provided; defaulting to: INFO
2019-03-15 18:07:04.550 UTC [shim] setupChaincodeLogging -> INFO 002 Chaincode (build level: ) starting up ...
2019-03-15 18:07:04.551 UTC [bccsp] initBCCSP -> DEBU 001 Initialize BCCSP [SW]
2019-03-15 18:07:04.551 UTC [grpc] DialContext -> DEBU 002 parsed scheme: ""
2019-03-15 18:07:04.551 UTC [grpc] DialContext -> DEBU 003 scheme "" not registered, fallback to default scheme
2019-03-15 18:07:04.551 UTC [grpc] watcher -> DEBU 004 ccResolverWrapper: sending new addresses to cc: [{peer:7052 0  <nil>}]
2019-03-15 18:07:04.551 UTC [grpc] switchBalancer -> DEBU 005 ClientConn switching balancer to "pick_first"
2019-03-15 18:07:04.551 UTC [grpc] HandleSubConnStateChange -> DEBU 006 pickfirstBalancer: HandleSubConnStateChange: 0xc00038eca0, CONNECTING
2019-03-15 18:07:04.552 UTC [grpc] HandleSubConnStateChange -> DEBU 007 pickfirstBalancer: HandleSubConnStateChange: 0xc00038eca0, READY

myc 我的C 我的C 我的C 我的C 我的C myc

enter image description here

2 个答案:

答案 0 :(得分:0)

它看起来像fmt.Println输出。

但是您可以使用

shim.NewLogger("YOUR_COMPONENT_NAME")

您可以找到一个shim logger的示例:

https://github.com/IBM-Blockchain-Archive/fabric-boilerplate/blob/master/blockchain/src/build-chaincode/chaincode.go

答案 1 :(得分:0)

链码的日志位于其各自的容器中。因此,对于组织的peer0上版本为mycc的名为1.0的链码,我将运行:

docker logs -f dev-peer0.org.example.com-mycc-1.0

查看任何fmt.Print*的输出。

万一某人不熟悉,您可以使用docker ps查看您的容器,并在安装链码并在新链码或instantiate上运行upgrade后创建链码容器现有容器(这将创建一个新容器,因此将在上面的容器名称中显示版本)。