我對Log4J(以及一般的Java)有點新。我試圖輸出一些日誌到logstash。我遇到了logstash的內置log4j輸入類型的一些問題。出於這個原因,我想使用json_event layout的方法。Log4j - RollingRandomAccessFile中的元素或屬性無效
ERROR: RollingRandomAccessFile contains an invalid element or attribute "layout".
我不明白爲什麼我得到這個,或如何解決此問題:雖然我相信我擁有了一切正確安裝,當我開始我的應用程序,說我發現了一個錯誤。我更感興趣的是獲取json_event格式的日誌。目前,我的log4j2.xml文件看起來像這樣:
<Configuration status="WARN" monitorInterval="30">
<Appenders>
<RollingRandomAccessFile name="RollingFile" fileName="/logs/recent.log"
filePattern="/logs/$${date:yyyy-MM}/server-%d{yyyy-MM-dd-HH}-%i.log.gz">
<layout class="net.logstash.log4j.JSONEventLayoutV1" />
<Policies>
<TimeBasedTriggeringPolicy interval="4" modulate="true"/>
<SizeBasedTriggeringPolicy size="100 MB"/>
</Policies>
</RollingRandomAccessFile>
<Async name="AsyncFile">
<AppenderRef ref="RollingFile"/>
</Async>
</Appenders>
<Loggers>
<Logger name="com.myApp" level="trace" additivity="false">
<AppenderRef ref="AsyncFile"/>
</Logger>
<Root level="trace">
<AppenderRef ref="AsyncFile"/>
</Root>
</Loggers>
</Configuration>
要開始我的應用程序,我跑在命令行:
java -Dlog4j.configurationFile=log4j2.xml -cp "/home/ubuntu/jsonevent-layout-1.6.jar" -Xms256m -Xmx1024m -jar myApp.jar
我已經證實,路徑jsonevent-layout-1.6.jar是正確的。我的應用程序成功記錄,如果我刪除新的佈局。所以,我知道log4j運行正常。我知道我的應用運行得很好。這個問題被隔離爲使用json_event佈局。有人可以幫助我解決這個問題嗎?我完全不知道我做錯了什麼。
謝謝
這並不https://github.com/logstash/log4j-jsonevent-layout工作 – juice
的net.logstash.log4j.JSONEventLayoutV1不Log4J2工作。您將在https://github.com/maartenbosteels/log4j-jsonevent-layout上找到與Log4J2兼容的分支。不幸的是,它不在maven中心。所以你必須解決這個問題。 – juice
這也不起作用,使用net.logstash.log4j2.JSONEventLayoutV1沒有幫助。錯誤AppenderName包含無效的元素或屬性「net.logstash.log4j2.JSONEventLayoutV1」 – Xdg