Czy jest możliwe, aby log4j mógł logować się w formacie JSON, zmieniając tylko plik konfiguracyjny log4j.properties.xml
?
Korzystam ze starej aplikacji, która używa log4j 1.2
. Widzę tylko układ XML, ale nie ma układu JSON.Czy log4j obsługuje format JSON?
14
A
Odpowiedz
18
wystarczy użyć buildin PatternLayout jest ok:
log4j.appender.stdout=org.apache.log4j.ConsoleAppender
log4j.appender.stdout.encoding=UTF-8
log4j.appender.stdout.layout=org.apache.log4j.PatternLayout
log4j.appender.stdout.layout.ConversionPattern={"debug_level":"%p","debug_timestamp":"%d{ISO8601}","debug_thread":"%t","debug_file":"%F", "debug_line":"%L","debug_message":"%m"}%n
będzie się umieścić jak:
{
"debug_level" : "INFO",
"debug_timestamp" : "2016-05-26 16:37:08,938",
"debug_thread" : "main",
"debug_file" : "TestLogOutPut.java",
"debug_line" : "316",
"debug_message" : "hello i am a log message"
}
1
Tak Jest to możliwe. Take a look at this link To może generować
{
"timestamp":1352412458890,
"date":"Nov 8, 2012 10:07:38 PM",
"hostname":"michael1",
"username":"michael",
"level":"INFO",
"thread":"main",
"classname":"uk.me.mjt.log4jjson.SimpleJsonLayoutTest",
"filename":"SimpleJsonLayoutTest.java",
"linenumber":25,
"methodname":"testDemonstration",
"message":"Example of some logging"
}
15
ten jest oficjalnym graficzny wzór JSON
https://github.com/logstash/log4j-jsonevent-layout
1) Dodaj maven zależność https://mvnrepository.com/artifact/net.logstash.log4j/jsonevent-layout
<dependency>
<groupId>net.logstash.log4j</groupId>
<artifactId>jsonevent-layout</artifactId>
<version>1.7</version>
</dependency>
2) Dodaj konfigurację do pliku
log4j.rootCategory=WARN, RollingLog
log4j.appender.RollingLog=org.apache.log4j.DailyRollingFileAppender
log4j.appender.RollingLog.Threshold=TRACE
log4j.appender.RollingLog.File=api.log
log4j.appender.RollingLog.DatePattern=.yyyy-MM-dd
log4j.appender.RollingLog.layout=net.logstash.log4j.JSONEventLayoutV1
Powiązane problemy
- 1. Czy logback obsługuje log4j appenders?
- 2. Czy walidacja schematu JSON w narzędziach common-js obsługuje odniesienia?
- 3. JSON SerDe for Hive, który obsługuje tablice JSON
- 4. Wykrywanie JavaScriptem, czy przeglądarka obsługuje format Web Open Font (Woff) czy nie
- 5. Format ciągu łańcuch JSON daje KeyError
- 6. Format powrotu JSON w ASP.NET MVC
- 7. JSON ASP.NET Web Service Response Format
- 8. Jaki format pliku obsługuje PharData :: extractTo Extract Files As?
- 9. Log4j 2. Jak uzyskać komunikaty debugowania log4j?
- 10. Czy PetaPoco obsługuje wyliczenia?
- 11. Czy Mono obsługuje XAML?
- 12. Czy Winapi obsługuje globalnie?
- 13. Czy libspotify obsługuje oauth
- 14. Czy SystemVerilog obsługuje downcasting?
- 15. Czy Heroku obsługuje PHP?
- 16. Czy SQLite obsługuje SCOPE_IDENTITY?
- 17. Czy CMake obsługuje Python3?
- 18. Czy SQLAlchemy obsługuje buforowanie?
- 19. Czy SQLite obsługuje replikację?
- 20. Czy Ember.js obsługuje IE6?
- 21. Czy Node.js obsługuje paralelizm?
- 22. Czy Dapper obsługuje Enums?
- 23. Czy ormlite obsługuje dziedziczenie?
- 24. Czy PowerShell obsługuje OOP?
- 25. Czy Cassandra obsługuje sharding?
- 26. Czy Catboost obsługuje python3?
- 27. Czy EF7 obsługuje wyliczenia?
- 28. Czy Jenkins obsługuje XUnit.Net?
- 29. Czy Android obsługuje log2
- 30. Czy Android obsługuje OpenCL?
niesamowite
log4j.properties
... działało jak czar .. –To złamać jeśli wiadomość zawiera ' "'. –
To nie może działać, gdy komunikat o błędzie zawiera "\ n" itp. – xuanyuanaosheng