Sure, by definition *unit* tests should not depend on any external resource like databases. All my tests are /integration/ ones, testing the whole stack from logging to reading back from MongoDB.

We should probably split them and write mocked tests as well (I like Mockito, but it is just a matter of preference).

On 14.06.2012 19:54, Christian Trutz wrote:
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 <[email protected]
<mailto:[email protected]>>

    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
    [email protected] <mailto:[email protected]>
    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: [email protected] <mailto:[email protected]>




_______________________________________________
logback-dev mailing list
[email protected]
http://mailman.qos.ch/mailman/listinfo/logback-dev



pozdrowienia

--
Tomasz Nurkiewicz
http://nurkiewicz.blogspot.com
_______________________________________________
logback-dev mailing list
[email protected]
http://mailman.qos.ch/mailman/listinfo/logback-dev

Reply via email to