private[this] def formattedDate: String = ZonedDateTime.now.format()

in thrift/src/main/scala/com/twitter/finatra/thrift/filters/ThriftCommonLogFormatter.scala [28:76]


  private[this] def formattedDate: String = ZonedDateTime.now.format(DateFormat)

  def format(request: Any, response: Any, responseTime: Duration): String = {
    val remoteAddr =
      Contexts.local.get(RemoteInfo.Upstream.AddressCtx) match {
        case Some(addr) =>
          val asString = addr.toString
          if (asString.startsWith("/")) asString.substring(1)
          else asString
        case _ => ""
      }
    val clientId = ClientId.current match {
      case Some(client) => client.name
      case _ => ""
    }
    val (methodName, serviceName) = MethodMetadata.current match {
      case Some(method) => (method.methodName, method.serviceName)
      case _ => ("", "")
    }

    val builder = new StringBuilder(256)
    builder.append(remoteAddr)
    builder.append(" - - [")
    builder.append(formattedDate)
    builder.append("] \"")
    builder.append(clientId)
    builder.append(' ')
    builder.append(serviceName)
    builder.append(' ')
    builder.append(methodName)
    builder.append("\" ")
    response match {
      case throwable: Throwable =>
        builder.append(s"failure ${throwable.getClass.getSimpleName}")
        builder.append(' ')
      case _ =>
      // do nothing
    }
    if (response != null && response.isInstanceOf[Array[Byte]]) {
      builder.append(response.asInstanceOf[Array[Byte]].length)
      builder.append(' ')
    } else {
      builder.append("- ")
    }

    builder.append(responseTime.inMillis)

    builder.toString
  }