2012-08-07 14 views
5

पर लॉग 4 जे प्रिंट खाली रेखा जावा में आप एक खाली रेखा मुद्रित करने के लिए System.out.println() का उपयोग कर सकते हैं लेकिन यह लॉगफाइल में log4j के साथ कैसे काम करता है? वहां भी मैं लॉगफाइल के अंदर एक या अधिक रिक्त रेखाएं रखना चाहता हूं। log4j how to append blank linelog4J logfile

लेकिन यह वास्तव में उपयोगी है क्योंकि

logger.debug("\n"); 
logger.debug(""); 

साथ आप एक संदेश है, लेकिन अन्य जानकारी बार की तरह (के लेआउट मुद्रित नहीं है और इतने पर नहीं है:

मैं पहले से ही follwing पढ़ लॉगर) अभी भी लॉगफाइल के अंदर संग्रहीत हैं। लेकिन मैं सिर्फ कुल खाली लाइन चाहता हूं। क्या कोई मेरी मदद कर सकता है?

उत्तर

8

लॉग 4j खाली लाइनों को लिखने के लिए डिज़ाइन नहीं किया गया है।

आपको लॉगर में यह विकल्प नहीं मिल रहा है, क्योंकि लॉगर अपने परिशिष्टों से स्वतंत्र है जो फ़ाइल या कंसोल या कुछ अलग लिखते हैं।

मुझे लगता है कि आपको अपना कस्टम फ़ाइल ऐपेंडर बनाने की आवश्यकता है जो लेखन से पहले लॉगिंग संदेश की जांच करता है। यदि आपका message.equals("\n"); आप फ़ाइल को एक्सेस करके लेआउट के बिना एक रिक्त रेखा जोड़ते हैं और लेआउट के साथ सामान्य लॉगिंग छोड़ देते हैं। तो आप Logger.debug("\n");

का उपयोग कर सकते हैं इसके अलावा रिक्त रेखाएं जोड़ने का एक बुरा अभ्यास भी है। यह आपके लॉग-संदेश को कई पंक्तियों पर विभाजित करने के समान है। आप अपने सभी लॉगमेसेज को एक पंक्ति में चाहते हैं, इसलिए 0Vया OtrosLogViewer जैसे लॉगव्यूयर-टूल्स के लिए उन्हें पार्स करना आसान है। एक अपवाद स्टैकट्रैसेस हैं।

2

खाली लेआउट और उस एपेंडर का उपयोग करने वाले लॉगर के साथ अपना स्वयं का एपेंडर बनाएं। फिर उस लॉगर का उपयोग करके रिक्त रेखा लिखें। लॉगर को झूठी के लिए additivity विशेषता सेट करने के लिए निश्चित करें ताकि रूट लॉगर अपने परिशिष्टों के स्वरूपण का उपयोग करके संदेश नहीं लिख सके।