Log4j 掌舵人“托亚马尔”不保留该命令

Log4j 掌舵人“托亚马尔”不保留该命令,log4j,kubernetes-helm,to-yaml,Log4j,Kubernetes Helm,To Yaml,尝试使用toYaml获取log4j2节form values.yml,但它不保留顺序 log4j2.yml: |- {{ toYaml .Values.log4j2 | indent 4 }} 输出- log4j2: Configuration: Appenders: Console: Filters: DuplicateLogFilter: ttlInSeconds: 60 MarkerF

尝试使用
toYaml
获取log4j2节form values.yml,但它不保留顺序

log4j2.yml: |-
{{ toYaml .Values.log4j2 | indent 4 }}
输出-

log4j2:
  Configuration:
    Appenders:
      Console:
        Filters:
          DuplicateLogFilter:
            ttlInSeconds: 60
          MarkerFilter:
            marker: TRACE
            onMatch: ACCEPT
            onMismatch: NEUTRAL
        PatternLayout:
          pattern: '%-5p | %d{yyyy-MM-dd HH:mm:ss,SSS} | [%t] [%X{AD.requestGUID}] [%X{trace.id}]
          %x %c{1.}:%L - %m%n'
        name: CONSOLE
        target: SYSTEM_OUT
    monitorInterval: 300
    shutdownHook: disable
预期产量-

log4j2:
  Configuration:
    monitorInterval: 300
    shutdownHook: disable
    Appenders:
      Console:
        name: CONSOLE
        target: SYSTEM_OUT
        Filters:
          MarkerFilter:
            marker: TRACE
            onMatch: ACCEPT
            onMismatch: NEUTRAL
          DuplicateLogFilter:
            ttlInSeconds: 60
        PatternLayout:
          pattern: "%-5p | %d{yyyy-MM-dd HH:mm:ss,SSS} | [%t] [%X{AD.requestGUID}] [%X{trace.id}] %x %c{1.}:%L - %m%n"

值文件被解析为映射(或字典,如果您愿意),通常不需要映射结构来保留字段顺序。因此,您的问题不是
toYaml
函数本身的问题,而是在
values.yaml
中放置log4j配置的问题

您可以做的是将log4j配置移动到单独的log4j2.yml文件(在图表的根目录中),并将其作为原始文件包括在内:

log4j2.yml: |-
  {{- .Files.Get "log4j2.yml" | nindent 10 }}
(相应地调整缩进)