[logback-dev] Logback appender for MongoDB

Christian Trutz christian.trutz at gmail.com
Thu Jun 14 19:54:38 CEST 2012


Hi Tomasz,

>The only issue I see is integration testing: at least my tests require
running MongoDB
>instance somewhere. This is a major drawback for both continuous
integration of Lobgack
>extensions and for all developers, not necessarily interested in this
particular extension.

I think we should not require for unit test a mongodb instance. I have very
good experience with jmockit http://code.google.com/p/jmockit/ what do you
think about?

Christian

2012/6/14 Tomasz Nurkiewicz <nurkiewicz at gmail.com>

> Here is precisely what I created so far:
>
> * base abstract appender handling MongoDB connectivity [1]
> * standard appender [2] + tests [3]
> * access appender (tested with Tomcat) [4] + tests [5]
> * configuration examples [6]
>
> By quick googling I found several other community implementations: [7],
> [8], [9]. Looks like my implementation is the only one capable of storing
> access logs as well, e.g.:
>
> {
>    "_id" : ObjectId("**4d98cc4f7abb95e59279e183"),
>    "timeStamp" : ISODate("2011-04-03T19:36:47.**339Z"),
>    "server" : "localhost",
>    "remote" : {
>        "host" : "0:0:0:0:0:0:0:1",
>        "user" : "tomcat",
>        "addr" : "0:0:0:0:0:0:0:1"
>    },
>    "request" : {
>        "uri" : "/manager/images/tomcat.gif",
>        "protocol" : "HTTP/1.1",
>        "method" : "GET",
>        "sessionId" : "**1C6357816D9EEFD31F6D9D154D8730**8A",
>        "userAgent" : "Mozilla/5.0 (X11; U; Linux i686; pl-PL; rv:1.9.2.16)
> Gecko/20110323 Ubuntu/10.10 (maverick) Firefox/3.6.16",
>        "referer" : "http://localhost:8080/**manager/html<http://localhost:8080/manager/html>
> "
>    },
>    "response" : {
>        "contentLength" : NumberLong(1934),
>        "statusCode" : 200
>    }
> }
>
> We should now revise all available implementations and build final one
> based on best ideas from all of them. The only issue I see is integration
> testing: at least my tests require running MongoDB instance somewhere. This
> is a major drawback for both continuous integration of Lobgack extensions
> and for all developers, not necessarily interested in this particular
> extension.
>
> Christian Trutz - thanks for creating the project structure.
>
> [1]: https://github.com/nurkiewicz/**logback/blob/mongodb-appender/**
> logback-core/src/main/java/ch/**qos/logback/core/db/mongo/**
> MongoDBAppenderBase.java<https://github.com/nurkiewicz/logback/blob/mongodb-appender/logback-core/src/main/java/ch/qos/logback/core/db/mongo/MongoDBAppenderBase.java>
>
> [2]: https://github.com/nurkiewicz/**logback/blob/mongodb-appender/**
> logback-classic/src/main/java/**ch/qos/logback/classic/db/**
> mongo/MongoDBAppender.java<https://github.com/nurkiewicz/logback/blob/mongodb-appender/logback-classic/src/main/java/ch/qos/logback/classic/db/mongo/MongoDBAppender.java>
>
> [3]: https://github.com/nurkiewicz/**logback/blob/mongodb-appender/**
> logback-classic/src/test/java/**ch/qos/logback/classic/db/**
> mongo/MongoDBAppenderTest.java<https://github.com/nurkiewicz/logback/blob/mongodb-appender/logback-classic/src/test/java/ch/qos/logback/classic/db/mongo/MongoDBAppenderTest.java>
>
> [4]: https://github.com/nurkiewicz/**logback/blob/mongodb-appender/**
> logback-access/src/main/java/**ch/qos/logback/access/db/**
> mongo/MongoDBAppender.java<https://github.com/nurkiewicz/logback/blob/mongodb-appender/logback-access/src/main/java/ch/qos/logback/access/db/mongo/MongoDBAppender.java>
>
> [5]: https://github.com/nurkiewicz/**logback/blob/mongodb-appender/**
> logback-access/src/test/java/**ch/qos/logback/access/db/**
> mongo/MongoDBAppenderTest.java<https://github.com/nurkiewicz/logback/blob/mongodb-appender/logback-access/src/test/java/ch/qos/logback/access/db/mongo/MongoDBAppenderTest.java>
>
> [6]: https://github.com/nurkiewicz/**logback/tree/mongodb-appender/**
> logback-classic/src/test/**input/joran/mongodb<https://github.com/nurkiewicz/logback/tree/mongodb-appender/logback-classic/src/test/input/joran/mongodb>
>
> [7]: https://github.com/kofemann/**mongo-appender-for-logback<https://github.com/kofemann/mongo-appender-for-logback>
>
> [8]: https://github.com/smilebase/**logback-mongodb<https://github.com/smilebase/logback-mongodb>
>
> [9]: https://github.com/uded/**logback-mongodb-appender<https://github.com/uded/logback-mongodb-appender>
>
>
>
> On 14.06.2012 14:24, ceki wrote:
>
>> Hi Christian,
>>
>> Tomasz created a jira issue for implementing MongoDBAppender [2]. His
>> implementation can be found at [3, 4, 5].
>>
>> I think his impl is worth a look. He seprated connection functionality
>> into MongoDBAppenderBase (part of logback-core) and ILoggingEvent
>> specific code into MongoDBAppender (in logback-classic). Moreover, his
>> code comes with 100% test coverage!
>>
>> I guess the code could be easily extended to cater for AccessEvent (in
>> logback-access).
>>
>> Anyway, let me know what I can do to move this work forward.
>>
>> [1] https://github.com/qos-ch/**logback-extensions<https://github.com/qos-ch/logback-extensions>
>> [2] http://jira.qos.ch/browse/**LOGBACK-522<http://jira.qos.ch/browse/LOGBACK-522>
>> [3] https://github.com/nurkiewicz/**logback/tree/mongodb-appender<https://github.com/nurkiewicz/logback/tree/mongodb-appender>
>> [4] https://github.com/nurkiewicz/**logback/commit/858aceb9af74d0<https://github.com/nurkiewicz/logback/commit/858aceb9af74d0>
>> [5] https://github.com/nurkiewicz/**logback/commit/f5bff8e43<https://github.com/nurkiewicz/logback/commit/f5bff8e43>
>>
>>
>
>
> pozdrowienia
>
> --
> Tomasz Nurkiewicz
> http://nurkiewicz.blogspot.com
> ______________________________**_________________
> logback-dev mailing list
> logback-dev at qos.ch
> http://mailman.qos.ch/mailman/**listinfo/logback-dev<http://mailman.qos.ch/mailman/listinfo/logback-dev>
>



-- 
Christian Trutz
Von-Flotow-Straße 24
D-45772 Marl

Festnetz (privat): +49 (0)2365 3840327
E-Mail: christian.trutz at gmail.com
-------------- next part --------------
An HTML attachment was scrubbed...
URL: <http://mailman.qos.ch/pipermail/logback-dev/attachments/20120614/f9a61a53/attachment-0001.html>


More information about the logback-dev mailing list