【问题标题】:grpc with Vertx Logs Explanation Neededgrpc with Vertx Logs Explaned Needed
【发布时间】:2018-05-24 03:58:21
【问题描述】:

我已经使用 Kotlin 实现了一个带有 Vertx 的 grpc API,并启用了 FINEST 日志级别以进行调试。在我的集成测试中,我尝试使用通道将 grpc 客户端连接到服务器。

客户端sn-p:

    val clientAsync1 = ctx.async()
            val channel1 = VertxChannelBuilder
                    .forAddress(vertx, "localhost", 10000)
                    .usePlaintext(true)
                    .build()
            val stub1 = ExampleGrpc.newVertxStub(channel1)

            val request = builderUtil.buildRequest()

            stub1.attemptFriendship(request) { stream ->
                    stream.handler { response ->

                    }
            }

我在我的 grpc verticle 的日志中看到以下内容:

    [main] 2018-05-24T12:42:27.69+09:00 FINE [io.grpc.internal.ManagedChannelImpl]  [{0}] Exiting idle mode
    [grpc-default-executor-0] 2018-05-24T12:42:27.71+09:00 FINE [io.grpc.internal.ManagedChannelImpl]  [{0}] resolved address: {1}, config={2}
    [main] 2018-05-24T12:42:27.713+09:00 FINE [io.grpc.internal.ManagedChannelImpl]  [{0}] {1} created for {2}
    [main] 2018-05-24T12:42:27.759+09:00 FINE [io.grpc.internal.InternalSubchannel]  [{0}] Created {1} for {2}
    [vert.x-eventloop-thread-0] 2018-05-24T12:42:28.081+09:00 FINE [io.grpc.internal.InternalSubchannel]  [{0}] {1} for {2} is ready
    [vert.x-eventloop-thread-0] 2018-05-24T12:42:35.956+09:00 FINE [io.grpc.internal.ManagedChannelImpl]  [{0}] Created with target {1}
    [vert.x-eventloop-thread-0] 2018-05-24T12:42:35.961+09:00 FINE [io.grpc.internal.ManagedChannelImpl]  [{0}] Exiting idle mode
    [grpc-default-executor-0] 2018-05-24T12:42:35.962+09:00 FINE [io.grpc.internal.ManagedChannelImpl]  [{0}] resolved address: {1}, config={2}
    [grpc-default-executor-0] 2018-05-24T12:42:35.962+09:00 FINE [io.grpc.internal.ManagedChannelImpl]  [{0}] {1} created for {2}
    [grpc-default-executor-0] 2018-05-24T12:42:35.963+09:00 FINE [io.grpc.internal.InternalSubchannel]  [{0}] Created {1} for {2}
    [vert.x-eventloop-thread-0] 2018-05-24T12:42:35.974+09:00 FINE [io.grpc.internal.InternalSubchannel]  [{0}] {1} for {2} is ready
    [vert.x-eventloop-thread-0] 2018-05-24T12:42:46.808+09:00 FINE [io.grpc.internal.ManagedChannelImpl]  [{0}] shutdown() called
    [vert.x-eventloop-thread-0] 2018-05-24T12:42:46.81+09:00 FINE [io.grpc.internal.ManagedChannelImpl]  [{0}] Shutting down

有人能解释一下[{0}]{1}{2} 是什么意思吗?请注意,为完成测试而创建了多个通道,并且响应是流。

【问题讨论】:

    标签: kotlin grpc vert.x grpc-java


    【解决方案1】:

    {0} 格式是 MessageFormat 的格式,java.util.logging 使用的默认格式化程序。当调用像log(Level level, String msg, Object[] params) 这样的方法时,params 应该与msg 组合以形成日志字符串。这是有益的,因为如果不打印日志,则可以避免处理。

    java.util.logging.Logger 文档中所示:

    通常,格式化程序使用 java.text.MessageFormat 样式格式化来格式化参数,例如,格式字符串“{0} {1}”会将两个参数格式化为字符串。

    您的环境中配置的java.util.logging.Formatter 似乎没有这样做。

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 2019-08-01
      • 1970-01-01
      • 2016-04-15
      • 2017-01-26
      • 1970-01-01
      • 2016-04-30
      • 1970-01-01
      相关资源
      最近更新 更多