将日志信息写入系统的TempDIr中的文件

时间:2017-04-28 09:50:11

标签: java yaml log4j2

我试图将我的日志写入控制台和文件。在我的项目中使用Log4j。问题是文件没有创建,也没有信息写入 我的log42.yaml文件如下所示:

Configutation:


status: warn



Appenders:
    Console:
      name: CONSOLE
      target: SYSTEM_OUT
      PatternLayout:
         Pattern: "[%-5level] %d{yyyy-MM-dd HH:mm:ss.SSS} [%t] %c{1} - %msg%n"

File:
  - name: APPLICATION
    fileName: ${java.io.tmpdir}/myfile.log
    PatternLayout:
     Pattern: "[%-5level] %d{yyyy-MM-dd HH:mm:ss.SSS} [%t] %c{1} - %msg%n"




Loggers:
      Root:
        level: info
        AppenderRef:
          - ref: CONSOLE
          - ref: APPLICATION
      Logger:
          level: info
          AppenderRef:
            - ref: CONSOLE
        - ref: APPLICATION

控制台输出有效。将文件路径更改为其他路径,例如在本地机器上也没有创建文件。

我忽略了什么吗?

2 个答案:

答案 0 :(得分:1)

您的YAML文件有不正确的缩进缩进,文件中的第一个单词不正确。

在您的文件中,顶层结构是Configutation(应该是Configuration)键的值为null的映射。此外,statusAppendersFileLoggers也是顶级映射的关键,它们应该是映射的键,而映射是键的值{{ 1}}。

你应该尝试类似的东西:

Configuration

答案 1 :(得分:0)

感谢您的帮助。 不在临时文件夹中编写或创建文件的问题是使用参数${sys:java.io.tmpdir}的错误。 如何看待它需要前缀sys: