我试图将我的日志写入控制台和文件。在我的项目中使用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
控制台输出有效。将文件路径更改为其他路径,例如在本地机器上也没有创建文件。
我忽略了什么吗?
答案 0 :(得分:1)
您的YAML文件有不正确的缩进缩进,文件中的第一个单词不正确。
在您的文件中,顶层结构是Configutation
(应该是Configuration
)键的值为null
的映射。此外,status
,Appenders
,File
和Loggers
也是顶级映射的关键,它们应该是映射的键,而映射是键的值{{ 1}}。
你应该尝试类似的东西:
Configuration
答案 1 :(得分:0)
感谢您的帮助。
不在临时文件夹中编写或创建文件的问题是使用参数${sys:java.io.tmpdir}
的错误。
如何看待它需要前缀sys: