Log4gCouchdbLayout

Log4gCouchdbLayout — Format events into a CouchDB document

Synopsis

                    Log4gCouchdbLayout;
                    Log4gCouchdbLayoutClass;
CouchdbDocument *   log4g_couchdb_layout_format_document
                                                        (Log4gLayout *base,
                                                         Log4gLoggingEvent *event);
GType               log4g_couchdb_layout_get_type       (void);
void                log4g_couchdb_layout_register       (GTypeModule *module);
CouchdbDocument     (*Log4gCouchdbLayoutFormatDocument) (Log4gLayout *base,
                                                         Log4gLoggingEvent *event);

Description

This class formats a log event into a CouchDB document with the following schema:

{
   "description": "Log4g-CouchDB JSON-Schema",
   "type": "object",
   "properties": {
       "_id": {
           "description": "Unique ID for this document, internal to CouchDB",
           "type": "string"
       },
       "_rev": {
           "description": "Revision for this document, internal to CouchDB",
           "type": "string"
       },
       "record_type": {
           "description": "The schema URI",
           "type": "string",
           "format": "uri"
       },
       "record_type_version": {
           "description": "The schema version number",
           "type": "string"
       },
       "message": {
           "description": "The log message",
           "type": "string"
       },
       "level": {
           "description": "The log level of the logging event",
           "type": "string",
           "optional": true
       },
       "logger": {
           "description": "The name of the logger",
           "type": "string",
           "optional": true
       },
       "mdc": {
           "description": "The mapped data context",
           "type": "object",
           "properties": {
               "type": { "type": "string" },
               "value": { "type": "string" },
           },
           "optional": true
       },
       "ndc": {
           "description": "The nested data context",
           "type": "string",
           "optional": true
       },
       "timestamp": {
           "description": "The timestamp of the logging event",
           "type": "string",
           "format": "utc-millisec",
           "optional": true
       },
       "thread": {
           "description": "The thread where the event was logged",
           "type": "string",
           "optional": true
       },
       "function": {
           "description": "The function name",
           "type": "string",
           "optional": true
       },
       "file": {
           "description": "The file name",
           "type": "string",
           "optional": true
       },
       "line": {
           "description": "The line number",
           "type": "string",
           "optional": true
       },
       "application_annotations": {
           "description": "Application-specific data",
           "type": "any",
           "optional": true
       }
   }
}

Details

Log4gCouchdbLayout

typedef struct {
} Log4gCouchdbLayout;

The Log4gCouchdbLayout structure does not have any public members.


Log4gCouchdbLayoutClass

typedef struct {
    Log4gCouchdbLayoutFormatDocument format_document;
} Log4gCouchdbLayoutClass;

Log4gCouchdbLayoutFormatDocument format_document;

Create a new CouchdbDocument object.

log4g_couchdb_layout_format_document ()

CouchdbDocument *   log4g_couchdb_layout_format_document
                                                        (Log4gLayout *base,
                                                         Log4gLoggingEvent *event);

Call the format_document function from the Log4gCouchdbLayoutClass of base.

base :

A CouchDB layout object.

event :

The logging event object to be formatted into a CouchDB document.

Returns :

A logging event formatted into a CouchdbDocument object.

Since 0.1


log4g_couchdb_layout_get_type ()

GType               log4g_couchdb_layout_get_type       (void);

log4g_couchdb_layout_register ()

void                log4g_couchdb_layout_register       (GTypeModule *module);

Log4gCouchdbLayoutFormatDocument ()

CouchdbDocument     (*Log4gCouchdbLayoutFormatDocument) (Log4gLayout *base,
                                                         Log4gLoggingEvent *event);

Sub-classes may override this function to return a custom CouchDB document. The Log4gCouchdbAppender will call this function to format logging events before they are inserted into the database.

base :

A couchdb layout object.

event :

A logging event object to be laid out.

Returns :

A new CouchdbDocument object. Call g_object_unref() on the returned object to free memory.

Since 0.1

See Also

Apache CouchDB, couchdb-glib