public void log(TurmsNotification notification, int recipientCount, int onlineRecipientCount) {
        TurmsRequest relayedRequest = notification.getRelayedRequest();
        ByteBuf buffer = ByteBufUtil.join(64,
                LOG_FIELD_DELIMITER,
                // Requester info
                NumberFormatter.toCharBytes(notification.getRequesterId()),
                // Recipient info
                NumberFormatter.toCharBytes(recipientCount),
                NumberFormatter.toCharBytes(onlineRecipientCount),
                // Notification info: self info + meta info
                notification.hasCloseStatus()
                        ? NumberFormatter.toCharBytes(notification.getCloseStatus())
                        : null,
                NumberFormatter.toCharBytes(notification.getSerializedSize()),
                // Relayed request info
                // ID is most important, so we put it first
                NumberFormatter.toCharBytes(relayedRequest.getRequestId()),
                relayedRequest.getKindCase()
                        .name());
        NOTIFICATION_LOGGER.info(buffer);
    }
Note that although TurmsNotification can represent a "response" or "notification", the method
is only designed to log "notification" instead of "response"
turms-server-common/src/main/java/im/turms/server/common/infra/logging/BaseNotificationLoggingManager.java