为什么他们在 CloudStack 中使用不同的日志记录级别?

Why do they use different logging level here in CloudStack?

在做日志代码分析时,我发现有一些日志语句的日志消息相同但详细级别不同,我想知道他们为什么要这样做? (那些logging语句是多年前引入的,很难联系到引入它们的开发者)

如link这里:https://github.com/apache/cloudstack/blob/893a88d225276e45f12f9490e6af2c94a81c2965/server/src/main/java/com/cloud/network/element/VpcVirtualRouterElement.java

  if (vpcId == null) {
        s_logger.trace("Network " + network + " is not associated with any VPC");
        return false;
    }

 if (vpcId == null) {
        s_logger.error("Network " + network + " is not associated with any VPC");
        return routers;
    }

log message和if condition完全一样,那么这里使用不同级别的目的是什么?

编码时,条件和消息很重要,但上下文更重要。

跟踪级日志需要 vpcId,但如果没有,则不是错误,因为稍后将查找有效的 Vpc

错误级别日志需要一个 vpcId,但如果没有,那就是一个错误,因为以后不会查找有效的 Vpc,因此该过程将失败