Java Logback默认值分隔符不起作用

Java Logback默认值分隔符不起作用,java,logging,aws-lambda,logback,amazon-cloudwatch,Java,Logging,Aws Lambda,Logback,Amazon Cloudwatch,我正在使用Logback为我在AWS Lambda函数中使用的记录器配置日志模式 在该模式中,我指定如果在我的线程上下文中键为nog,则输出哪个默认值 这在除traceId之外的所有情况下都有效 这是我的模式: <encoder> <pattern>%d{"yyyy-MM-dd'T'HH:mm:ss.SSS'Z'", UTC} awsRequestId:%X{AWSRequestId:-n/a} parentTraceId:%X{parentTraceId:-n/

我正在使用
Logback
为我在AWS Lambda函数中使用的记录器配置日志模式

在该模式中,我指定如果在我的线程上下文中键为nog,则输出哪个默认值

这在除traceId之外的所有情况下都有效

这是我的模式:

<encoder>
    <pattern>%d{"yyyy-MM-dd'T'HH:mm:ss.SSS'Z'", UTC} awsRequestId:%X{AWSRequestId:-n/a} parentTraceId:%X{parentTraceId:-n/a} traceId:%X{traceId:-n/a} %.-6level %logger{5} - %msg &#xd;%replace(%ex){'\n','&#xd;'}%nopex%n</pattern>
</encoder>
如您所见,AWSRequestId已正确记录。对于parentTraceId,正确使用默认的“n/a”值。但对于traceId,不使用默认值


为什么默认值不用于traceId?

是否可能
parentTraceId
null
traceId
仅为空字符串?是否可能
parentTraceId
null
traceId
仅为空字符串?
2019-07-24T12:33:52.857Z awsRequestId:ff2ddb5d-d1a8-4ebe-b840-8b484b14efc3 parentTraceId:n/a traceId: INFO c.n.s.s.l.MyLambda