当前位置: 首页 > 知识库问答 >
问题:

使用Log4J2 YAML中的属性

宋畅
2023-03-14
<Configuration>
<Properties>
    <Property name="log-path">logs</Property>
    <Property name="archive">${log-path}/archive</Property>
</Properties>
<Appenders>
. . .
Configutation:
  name: Default
  properties:
    property:
      name: log-path
      value: "logs"
      name: archive
      value: ${log-path}/archive
  Appenders:

但是房产没有被选中。例如,下面的代码创建一个${log-path}文件夹来存储日志文件,而不是所需的logs文件夹。

fileName: ${log-path}/rollingfile.log

我做错了什么?

共有1个答案

竺和洽
2023-03-14

如果查看log4j2.json文件,可以看到属性键必须有一个值,即键值对列表。翻译成YAML,这看起来像这个文件的开头:

configuration:
  name: Default
  properties:
    property:
    - name: log-path
      value: logs
    - name: archive
      value: ${log-path}/archive
  appenders:
    Console:
      PatternLayout:
        pattern: '[%-5level] %d{yyyy-MM-dd HH:mm:ss.SSS} [%t] %c{1} - %msg%n'
      name: Console-Appender
      target: SYSTEM_OUT
    File:
      PatternLayout:
        pattern: '[%-5level] %d{yyyy-MM-dd HH:mm:ss.SSS} [%t] %c{1} - %msg%n'
      fileName: ${log-path}/logfile.log
      name: File-Appender
    RollingFile:
      DefaultRolloverStrategy:
        max: '30'
      PatternLayout:
        pattern: '[%-5level] %d{yyyy-MM-dd HH:mm:ss.SSS} [%t] %c{1} - %msg%n'
      Policies:
        SizeBasedTriggeringPolicy:
          size: 1 KB
      fileName: ${log-path}/rollingfile.log
      filePattern: ${archive}/rollingfile.log.%d{yyyy-MM-dd-hh-mm}.gz
      name: RollingFile-Appender
  loggers:
    logger:
      additivity: 'false'
      appender-ref:
      - level: info
        ref: Console-Appender
      - level: error
        ref: File-Appender
      - level: debug
        ref: RollingFile-Appender
      level: debug
      name: guru.springframework.blog.log4j2json
    root:
      appender-ref:
        ref: Console-Appender
      level: debug

(上面的代码是使用yaml from-json log4j2.json转换的,该命令是从ruamel.yaml.cmd安装的。)

当然,可以保证这是有效的,因为有多种方法可以将XML层次结构转换为YAML。但是YAML和JSON的解析不太可能不同。

 类似资料:
  • 问题内容: 我为该标题表示歉意。我找不到更好的方法来解释这种情况。 我使用URL http://www.exampledepot.com/egs/java.util/Props.html中所述的Property类加载属性文件。 我的问题是我可以在该属性文件中使用属性吗? 例: test.properties 其他语法有可能吗? 谢谢 问题答案: 以前从未见过。您当然 可以 制作自己的预处理器。只要

  • 我在IntelliJ检查中遇到了一个问题:这表明我的所有属性都未使用(参见图片)。这是不真实的,因为我的所有属性都正确地用于spring boot项目。我正在使用IntelliJ社区版2016.1.4

  • 我有以下测试: 属性位于中,看起来如下: 但是,我一直得到第25行,这正是具有初始化的行: Java.lang.NullPointerException位于com.example.estrans.esjavaapitests.(esjavaapitests.Java:25)位于sun.reflect.nativeConstructorAccessorImpl.newInstance0(原生方法)位

  • 本文向大家介绍Python中的__SLOTS__属性使用示例,包括了Python中的__SLOTS__属性使用示例的使用技巧和注意事项,需要的朋友参考一下 看python社区大妈组织的内容里边有一篇讲python内存优化的,用到了__slots__。然后查了一下,总结一下。感觉非常有用 python类在进行实例化的时候,会有一个__dict__属性,里边有可用的实例属性名和值。声明__slots_

  • 问题内容: hibernate中的property标签的lazy属性允许按照以下链接延迟加载属性:http : //docs.jboss.org/hibernate/orm/3.3/reference/en-US/html/mapping.html#mapping- declaration -属性 lazy(可选-默认为false):指定在首次访问实例变量时应延迟获取此属性。它需要构建时字节码检测

  • 本文向大家介绍JavaScript中length属性的使用方法,包括了JavaScript中length属性的使用方法的使用技巧和注意事项,需要的朋友参考一下  此属性返回字符串中的字符数。 语法 下面是参数的详细信息:     A string 返回值: 返回字符串中的字符数。 例子: 这将产生以下结果: