org.log4mongo
Class BsonAppender

java.lang.Object
  extended by org.apache.log4j.AppenderSkeleton
      extended by org.log4mongo.BsonAppender
All Implemented Interfaces:
org.apache.log4j.Appender, org.apache.log4j.spi.OptionHandler
Direct Known Subclasses:
MongoDbAppender

public abstract class BsonAppender
extends org.apache.log4j.AppenderSkeleton

Abstract Log4J Appender class that stores log events in the BSON format. Concrete implementation classes must implement append(DBObject) to store the BSON representation of a LoggingEvent.

An example BSON structure for a single log entry is as follows:

 {
   "_id"        : ObjectId("f1c0895fd5eee04a445deb00"),
   "timestamp"  : "Thu Oct 22 2009 16:46:29 GMT-0700 (Pacific Daylight Time)",
   "level"      : "ERROR",
   "thread"     : "main",
   "message"    : "Error entry",
   "fileName"   : "TestMongoDbAppender.java",
   "method"     : "testLogWithChainedExceptions",
   "lineNumber" : "147",
   "loggerName" : {
                    "fullyQualifiedClassName" : "org.log4mongo.TestMongoDbAppender",
                    "package"                 : [ "org", "log4mongo" ],
                    "className"               : "TestMongoDbAppender"
                  },
   "class"      : {
                    "fullyQualifiedClassName" : "org.log4mongo.TestMongoDbAppender",
                    "package"                 : [ "org", "log4mongo" ],
                    "className"               : "TestMongoDbAppender"
                  },
   "throwables" : [
                    {
                      "message"    : "I'm an innocent bystander.",
                      "stackTrace" : [
                                       {
                                         "fileName"   : "TestMongoDbAppender.java",
                                         "method"     : "testLogWithChainedExceptions",
                                         "lineNumber" : 147,
                                         "class"      : {
                                                          "fullyQualifiedClassName" : "org.log4mongo.TestMongoDbAppender",
                                                          "package"                 : [ "org", "log4mongo" ],
                                                          "className"               : "TestMongoDbAppender"
                                                        }
                                       },
                                       {
                                         "method"     : "invoke0",
                                         "lineNumber" : -2,
                                         "class"      : {
                                                          "fullyQualifiedClassName" : "sun.reflect.NativeMethodAccessorImpl",
                                                          "package"                 : [ "sun", "reflect" ],
                                                          "className"               : "NativeMethodAccessorImpl"
                                                        }
                                       },
                                       ... 8< ...
                                     ]
                    },
                    {
                      "message" : "I'm the real culprit!",
                      "stackTrace" : [
                                       {
                                         "fileName" : "TestMongoDbAppender.java",
                                         "method" : "testLogWithChainedExceptions",
                                         "lineNumber" : 145,
                                         "class" : {
                                                     "fullyQualifiedClassName" : "org.log4mongo.TestMongoDbAppender",
                                                     "package"                 : [ "org", "log4mongo" ],
                                                     "className"               : "TestMongoDbAppender"
                                                   }
                                       },
                                       ... 8< ...
                                     ]
                    }
                  ]
 }
 

See Also:
Log4J Appender Interface, MongoDB

Field Summary
 
Fields inherited from class org.apache.log4j.AppenderSkeleton
closed, errorHandler, headFilter, layout, name, tailFilter, threshold
 
Constructor Summary
BsonAppender()
           
 
Method Summary
protected abstract  void append(com.mongodb.DBObject bson)
          Method implemented by a concrete class to store the BSON object.
protected  void append(org.apache.log4j.spi.LoggingEvent loggingEvent)
           
 LoggingEventBsonifier getBsonifier()
           
 boolean requiresLayout()
           
 void setBsonifier(LoggingEventBsonifier bsonifier)
           
 
Methods inherited from class org.apache.log4j.AppenderSkeleton
activateOptions, addFilter, clearFilters, doAppend, finalize, getErrorHandler, getFilter, getFirstFilter, getLayout, getName, getThreshold, isAsSevereAsThreshold, setErrorHandler, setLayout, setName, setThreshold
 
Methods inherited from class java.lang.Object
clone, equals, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait
 
Methods inherited from interface org.apache.log4j.Appender
close
 

Constructor Detail

BsonAppender

public BsonAppender()
Method Detail

requiresLayout

public boolean requiresLayout()
See Also:
Appender.requiresLayout()

append

protected void append(org.apache.log4j.spi.LoggingEvent loggingEvent)
Specified by:
append in class org.apache.log4j.AppenderSkeleton
See Also:
AppenderSkeleton.append(org.apache.log4j.spi.LoggingEvent)

append

protected abstract void append(com.mongodb.DBObject bson)
Method implemented by a concrete class to store the BSON object.

Parameters:
bson - The BSON representation of a Logging Event that will be stored

getBsonifier

public LoggingEventBsonifier getBsonifier()
Returns:
Object used to Bsonify LoggingEvent objects

setBsonifier

public void setBsonifier(LoggingEventBsonifier bsonifier)
Parameters:
bsonifier - Object used to Bsonify LoggingEvent objects


Copyright © 2013. All Rights Reserved.