public static String toText(MessageInfo m) {
    if (m == null) {
      return "absent";
    }
    return new StringBuilder()
        .append(m.key).append(",")
        .append(m.size).append(" bytes").append(",")
        .append("ctime=").append(m.operationTimeMs).append(" ms").append(",")
        .append("expiry=").append(m.expirationTimeInMs).append(" ms").append(",")
        .append("obsolete=").append(m.isDeleted).append(",")
        .append("crc=").append(m.crc).append(",")
        .append("version=").append(m.lifeVersion)
        .toString();
  }
Print a concise readable text about blob-state
ctime = create time or time in ms when blob was inserted in ambry
expiry = time in ms when the blob will expire and eligible for garbage-collection
obsolete = user has requested blob-delete and the blob is in DELETE state but not garbage-collected
crc = blob data digest
version = blob version, applicable when blob encounters UN-DELETE.
@return
ambry-api/src/main/java/com/github/ambry/store/MessageInfo.java