log4j

2009-07-19 21 views
6

के लिए स्मृति 'सूची एपेंडर' में लॉग 4j के लिए कोई एपेंडर है जो केवल लॉगिंग ईवेंट की एक सूची संग्रहीत करता है (इकाई परीक्षणों में उपयोग करने के लिए, कोई त्रुटि लॉग सत्यापित नहीं किया गया था)?log4j

उत्तर

2

MemoryAppender है, लेकिन यह मानक log4j लाइब्रेरी का हिस्सा नहीं है।

आप आसानी से अपना खुद का लिख ​​सकते हैं, लेकिन यदि आप केवल यूनिट परीक्षणों के लिए उनका उपयोग कर रहे हैं तो मैं शायद लॉगर का मज़ाक उड़ाऊंगा और इस पर कोई कॉल नहीं करूँगा। लक्ष्य वर्ग में getLogger() विधि को ओवरराइड करें या सीधे प्रकार पर नकली लॉगर सेट करें।

Jmock (स्मृति से उदाहरण के लिए, किसी भी त्रुटि के लिए खेद है) का उपयोग करना:

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(); 
} 
1

मुझे विश्वास नहीं है कि वहां है। हालांकि, आप आसानी से लिख सकते हैं। यहां एक suitable tutorial है।

+0

मैं पहले से ही था, धन्यवाद। – ripper234