2012-07-06 12 views
5

मैं एक साधारण grails प्लगइन बना रहा हूँ जो हमारी कंपनियों के लिए विभिन्न परियोजनाओं के लॉगिंग के लिए केंद्रीय विन्यास के रूप में कार्य करेगा। सामान्य विचार यह है कि आप बस अपनी परियोजना में प्लगइन जोड़ते हैं, और यह रूट लॉगर में विभिन्न परिशिष्टों को इंजेक्ट करेगा। मैं पहले ग्रेग्लॉग 2 एपेंडर के साथ इसका परीक्षण कर रहा हूं (जो काम करता है अगर मैं इसे Config.groovy में कॉन्फ़िगर करता हूं)।एक Grails अनुप्रयोग में लॉग 4 जे एपेंडर इंजेक्शन

def rL = Logger.rootLogger 
    def layout = new PatternLayout(conversionPattern: '%d{dd-MM-yyyy HH:mm:ss,SSS} %5p %c{1} - %m%n') 

    Appender appender = new org.graylog2.log.GelfAppender(
      name:"gelf", 
      graylogHost:"graylog2.ourcompany.com", 
      extractStacktrace: true, 
      addExtendedInformation: true, 
      facility: "gelf-java", 
      threshold: org.apache.log4j.Level.INFO, 
      additionalFields: "{'runtime': 'grails', 'environment': 'dev', 'transport': 'gelf-java'}", 
      layout: layout 
    ) 
    rL.addAppender(appender) 

appender सही ढंग से instantiated और जड़ लकड़हारा से जुड़ा हुआ है, यहाँ से उत्पादन होता है: यह [जो स्टार्टअप पर निष्पादित हो जाता है] BootStrap.groovy का कोड मैं कोशिश की है (init में() है ।। rL.getAllAppenders() toList() प्रत्येक {प्रिंट it.toString()}:

org.codeh[email protected]7a054197 
[email protected] 

तो, के बावजूद appender जड़ लकड़हारा में जोड़ा जा रहा है, और त्रुटि-स्तर संदेशों लॉग में लिखा जा रहा (और डिफ़ॉल्ट कंसोल लॉगर पर प्रदर्शित), यह केवल ग्रेजॉग 2 को संदेशों को बंद नहीं करता है (मैंने इसे सत्यापित करने के लिए वायरशर्क का उपयोग करके जांच की है)। यह बदतर ठीक है अगर मैं सिर्फ किसी अन्य प्रोजेक्ट के Config.groovy में मान सेट करता हूं; लेकिन जाहिर है कि इस प्लगइन के उद्देश्य को हरा देता है।

+0

मुझे एक ही समस्या है लेकिन Config.groovy में, क्या आप मुझे दिखा सकते हैं कि आप इसे कैसे काम करते हैं? अग्रिम धन्यवाद – gurbieta

उत्तर

1

आपको रूट लॉगर में जोड़ने से पहले अपने एपेंडर पर activateOptions() पर कॉल करने की आवश्यकता है। जब आप एपेंडर को Config.groovy में कॉन्फ़िगर करते हैं तो Grails यह आपके लिए करता है, यही कारण है कि यह वहां काम करता है।

+0

आप, तरह महोदय, नायक हैं। – Noxville

संबंधित मुद्दे