我的应用程序以angular 7和spring boot 2运行。每次用户与应用程序进行交互时,我需要将一些数据存储在json文件中(单击某些按钮或链接)。 json应该看起来像这样(只是一个例子):
[
"event": {
userid : 1
ipAddress : x.x.x.x
lastConnectionDateTime : ...,
action : "click on link 1"
},
"event": {
userid : 2
ipAddress : y.y.y.y
lastConnectionDateTime : ...,
action : "click on button THE_BUTTON"
},
...
]
我使用JSONLayout配置了log4j2.xml,并且工作正常。但是我有两个问题:
1-结尾的“]”不存在。滚动完成后似乎添加了它(stackoverflow.com/questions/45792298/…)这非常令人讨厌,因为我的json日志被认为是有效的,原因是它已被另一个被splunk的工具读取。我还没有找到结束“]”的方法。有没有办法始终在末尾加上“]”?
2-第一次启动服务器时,在元素之间添加逗号“,”分隔符,但是当我重新启动服务器时,它不会第一次添加逗号,然后在插入第一个元素后再次添加逗号像这样:
[
{"thread":"main","level":"INFO","loggerName":"JSON_EVENT_LOGGER", "contextMap":{"action":"click link 1","ipAddress":"127.0.0.1","lastConnectionDateTime":"...timestamp...","userid":"1"}}
,
{"thread":"main","level":"INFO","loggerName":"JSON_EVENT_LOGGER", "contextMap":{"action":"click link 1","ipAddress":"127.0.0.1","lastConnectionDateTime":"...timestamp...","userid":"1"}}
**// HERE NO COMMA AFTER RESTART SERVER :(**
{"thread":"main","level":"INFO","loggerName":"JSON_EVENT_LOGGER", "contextMap":{"action":"click link 1","ipAddress":"127.0.0.1","lastConnectionDateTime":"...timestamp...","userid":"1"}}
这是我的配置:
<?xml version="1.0" encoding="UTF-8"?>
<Configuration status="WARN" packages="com.example.demo">
<Properties>
<Property name="filename">${sys:logiza.log.fonctionnel.file.path}</Property>
</Properties>
<Appenders>
<RollingFile name="FileAppender" fileName="${filename}"
filePattern="logs/log4j2-demo-%d{yyyy-MM-dd}-%i.log">
<JsonLayout eventEol="true" complete="true" compact="true" properties="true">
</JsonLayout>
<Policies>
<TimeBasedTriggeringPolicy interval="7" />
</Policies>
<DefaultRolloverStrategy max="10"/>
</RollingFile>
</Appenders>
<Loggers>
<Logger name="JSON_EVENT_LOGGER" level="ALL" additivity="false">
<Appenderref ref="FileAppender"/>
</Logger>
</Loggers>
</Configuration>
谢谢你。
我正面临着同样的问题,您是否已解决?