7
votes

Dans la mémoire 'List Appender' pour log4J

Y a-t-il un appendice pour log4J qui stocke uniquement une liste des événements de journalisation (à utiliser dans des tests d'unité, pour vérifier aucune erreur d'erreur n'a été écrit)?


0 commentaires

3 Réponses :


1
votes

Je ne crois pas qu'il y ait. Vous pouvez écrire votre propre facilement, cependant. Voici un Tutoriel approprié .


0 commentaires

3
votes

Il y a un MICHYAppender , mais ce n'est pas en partie de la bibliothèque Log4J standard.

Vous pouvez facilement écrire le vôtre, mais si vous ne les utilisez que pour des tests d'unité, je vous moquerais probablement de l'enregistreur et de faire valoir qu'aucun appels n'est apporté. Remplacez la méthode getlogger () dans la classe cible ou définissez le simturage de l'enregistreur simulé sur le type. P>

à l'aide de jmock (exemple de la mémoire, désolé pour toute erreur): p>

public void testDoFoo() {
    Mockery mockery = new Mockery();
    Logger mockLogger = mockery.mock(Logger.class);

    Foo foo = new Foo();

    foo.setLogger(mockLogger);

    mockery.checking(new Expectations() {
        {
            never(mockLogger).debug(with(any(String.class));
        }
    };

    ...
    //do the actual test.

    //assert the mock type has never been called.
    mockery.assertIsSatisfied();
}


0 commentaires

0
votes

Ceci est un exemple de mise en œuvre d'un appendeur Logger, qui stocke tous les événements en mémoire (dans un stringbuilder ); Le contenu peut ensuite être récupéré avec getResult : xxx

Vous devez ajouter ce appendend à un enregistreur existant , par exemple (< Code> myClass est la classe qui utilise un enregistreur pour enregistrer les événements que vous souhaitez capturer): xxx


0 commentaires