2009-08-04 15 views
8

सेट करना मैं लॉगिंग और ट्रेसिंग उद्देश्यों के लिए java.util.logging का उपयोग कर रहा हूं। जावा एप्लिकेशन के भीतर मैं गतिशील रूप से फ़ाइल को कैसे सेट कर सकता हूं जिस पर लॉग लिखा जाना चाहिए।java.util.logging गंतव्य प्रोग्रामेटिक रूप से

उत्तर

1

क्या आप JULog के बारे में बात कर रहे हैं?

यदि ऐसा है, तो उत्तर "आप नहीं कर सकते"। आप जिस फ़ाइल को लॉगिंग कर रहे हैं उसे बदलने के लिए (या कॉन्फ़िगरेशन में कुछ और बदलें) आपको यह जानने की ज़रूरत है कि आप किस अंतर्निहित लॉगिंग कार्यान्वयन का उपयोग कर रहे हैं और जूलोग का उपयोग करने का पूरा बिंदु (काफी बहस योग्य, बीटीडब्ल्यू, जब तक कि आप लाइब्रेरी विकसित नहीं कर रहे हों) कोई कार्यान्वयन लॉगिंग करने के संबंध नहीं है।

यदि रनटाइम पर कोई फ़ाइल चुनना एक आवश्यकता है तो आप Log4j जैसे ठोस कार्यान्वयन के साथ बेहतर होने जा रहे हैं।

+0

(nb: निम्नलिखित कोड का टुकड़ा एक साधारण उदाहरण के प्रोग्राम प्रवेश गंतव्य सेट करने के लिए पता चलता इस उत्तर मूल, असंपादित सवाल "जुलाई लॉगिंग स्थापना"/"मैं जुलाई लॉगिंग उपयोग कर रहा हूँ के लिए था .. । ") Log4j के बजाय, यह लॉगबैक का उपयोग करके हासिल किया जा सकता है (सभी लॉगिंग को लॉगबैक पर रीडायरेक्ट करने के लिए slf4j का उपयोग करें); http://stackoverflow.com/questions/3803184/setting-logback-appender-path-programmatically (लेकिन फिर भी, यह एक बुरा विचार है; विभिन्न लॉगबैक एपेंडर/नीतियां हैं जो आउटपुट फ़ाइल को नियंत्रित करती हैं, जिससे लॉग कॉन्फ़िगरेशन रहने की अनुमति देता है एक्सएमएल कॉन्फ़िगरेशन में, जहां यह संबंधित है) – michael

8

java.util.logging.FileHandler आपके लिए अपना काम कर सकता है।

Logger logger = Logger.getLogger("my.logger.name"); 
    try { 
     FileHandler handler = new FileHandler("application.log", true); 
     logger.addHandler(handler); 
    } catch (IOException e) { 
     throw new IllegalStateException("Could not add file handler.", e); 
    } 
    logger.info("Hello Logger!"); 
संबंधित मुद्दे