Stefan
Stefan

Reputation: 1307

Does log4j support JSON format?

Is it possible to let log4j output its logging in JSON format by only altering the log4j.properties / xml configuration files?

I make use of an old application that uses log4j 1.2. I only see the standard layout but no JSON layout.

Upvotes: 42

Views: 76472

Answers (3)

Abhinav Suryawanshi
Abhinav Suryawanshi

Reputation: 161

Yes It is possible. Take a look at this link It can generate

{
   "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"
 }

Upvotes: 2

Karpov S.Y.
Karpov S.Y.

Reputation: 699

this is official JSON layout

https://github.com/logstash/log4j-jsonevent-layout

1) Add maven dependency 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) Add configuration to your log4j.properties file

 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

Upvotes: 59

chad chen
chad chen

Reputation: 478

just use buildin PatternLayout is 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

will out put like:

{
    "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"
}

Upvotes: 29

Related Questions