2013-10-18 2 views
12

मैं वेग लॉग अक्षम करने की कोशिश कर दिया गया है, और एक ही रास्ता मैं सकारात्मक परिणाम के साथ अब तक मिल गया है स्थापित करने के लिए है:अक्षम कैसे वेग लॉग

runtime.log.logsystem.class=org.apache.velocity.runtime.log.NullLogSystem 

लेकिन velocity.properties अंदर है कि रहता है velocity.jar के अंदर।

मैं वेब अनुप्रयोग (tomcat) संदर्भ में वेग का उपयोग कर रहा हूं। क्या वेग को अक्षम करने के लिए कोई तरीका है (पिछली संपत्ति या जो कुछ भी सेट करके) लेकिन JAR को संशोधित किए बिना ??

//java configuration 
VelocityEngine ve = new VelocityEngine(); 
ve.setProperty(RuntimeConstants.RUNTIME_LOG_LOGSYSTEM_CLASS, "org.apache.velocity.runtime.log.Log4JLogChute"); 
ve.setProperty("runtime.log.logsystem.log4j.logger","velocity"); 

//log4j properties 
log4j.category.velocity=WARN 

IMHO INFO जुर्माना velocity स्टार्टअप पर के रूप में आप कुछ नोटिस जाएगा:

किसी भी कोड संशोधित नहीं कर सकते

अग्रिम धन्यवाद

+0

पोस्ट आपके आवेदन लॉगिंग गुण – Keerthivasan

+0

मैं बस कुछ भी नहीं के साथ एक log4j.properties इसके अंदर वेग के बारे में है – luiso1979

उत्तर

2

इस तरह आप velocity में प्रवेश वांछित कॉन्फ़िगर कर सकते हैं है उपयोगी वेग इंजन विन्यास विवरण, लेकिन templating के दौरान कुछ भी विशिष्ट INFO स्तर से बाहर आता है।

+0

कोड (खेद है मुझे लगता है कि भूल नहीं छू सकता है विस्तार, मैं प्रश्न संपादित करूंगा) – luiso1979

+0

इसके अलावा, मैंने वेग [दस्तावेज़ीकरण] पढ़ा है (http://velocity.apache.org/engine/devel/developer-guide.html#Configuring_Logging) – luiso1979

2

आप VelocityBuilder इंटरफेस की विधि VelocityEngine इंजन() लागू कर सकते हैं और फिर एक फ़ाइल आप इस प्रकार का उपयोग करना चाहते निर्दिष्ट करें:

resource.loader = framework 

framework.resource.loader.description = Framework Templates Resource Loader 
framework.resource.loader.class = applica.framework.library.velocity.WEBINFResourceLoader 

webapp.resource.loader.class = org.apache.velocity.tools.view.servlet.WebappLoader 
webapp.resource.loader.path = 
runtime.log.logsystem.class=org.apache.velocity.runtime.log.NullLogSystem 
file.resource.loader.description = Velocity File Resource Loader 
file.resource.loader.class = org.apache.velocity.runtime.resource.loader.FileResourceLoader 
file.resource.loader.path = 

class.resource.loader.description = Velocity Classpath Resource Loader 
class.resource.loader.class = org.apache.velocity.runtime.resource.loader.ClasspathResourceLoader 
12

:

public VelocityEngine engine() { 
       if(engine == null) { 
        engine = new VelocityEngine(); 

        Properties properties = new Properties(); 
        InputStream in = null; 
        try { 
//here is where you specify the filename "/WEB-INF/velocity.properties" 
         in = webApplicationContext.getServletContext().getResourceAsStream("/WEB-INF/velocity.properties"); 
         properties.load(in); 
         engine.init(properties); 
        } catch (IOException e) { 
         e.printStackTrace(); 
         logger.error("Error loading velocity engine properties"); 
         throw new ProgramException("Cannot load velocity engine properties"); 
        } 

        IOUtils.closeQuietly(in); 
       } 

       return engine; 
      } 

और अपने velocity.properties फ़ाइल में के बाद सामान्य में: बस अपने velocity.properties:

runtime.log.logsystem.class=org.apache.velocity.runtime.log.NullLogChute 
पर निम्न पंक्ति जोड़ें 210

आपके प्रश्न: यह इस बात पर निर्भर करता है कि वेग इंजन कैसे लोड किया जाता है। क्या यह एक कस्टम velocity.properties फ़ाइल देना संभव है?
उदाहरण के लिए सोलर की VelocityResponseWriter ऐसी संपत्ति है जिसे v.properties (या init.properties.file वर्तमान संस्करणों में) कहा जाता है।
देखो, विधि org.apache.velocity.app.VelocityEngine.init(Properties) कोड में कहीं भी कहा जाता है, तो ...

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