2012-10-31 24 views
7

मैंने एक वेब एप्लिकेशन विकसित किया है जहां मैं एक कर्मचारी को पंजीकृत कर सकता हूं।web.xml और log4j.properties में log4j आउटपुट फ़ाइल पथ को कॉन्फ़िगर कैसे करें?

मेरे web.xml

<?xml version="1.0" encoding="UTF-8"?> 
<web-app xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" 
xmlns="http://java.sun.com/xml/ns/javaee" 
xmlns:web="http://java.sun.com/xml/ns/javaee/web-app_2_5.xsd" 
xsi:schemaLocation="http://java.sun.com/xml/ns/javaee 
http://java.sun.com/xml/ns/javaee/web-app_2_5.xsd" id="WebApp_ID" version="2.5"> 

    <display-name>Employee Registration</display-name> 

    <welcome-file-list> 
    <welcome-file>index.jsp</welcome-file> 
    </welcome-file-list> 

    <servlet> 
    <servlet-name>sapient</servlet-name> 
    <servlet-class>org.springframework.web.servlet.DispatcherServlet</servlet-class> 
    <load-on-startup>1</load-on-startup> 
    </servlet> 

    <servlet-mapping> 
    <servlet-name>sapient</servlet-name> 
    <url-pattern>*.htm</url-pattern> 
    </servlet-mapping> 

</web-app> 

अब जब मैं अपने html पृष्ठ में एक Register बटन पर क्लिक करें। यह एक नियंत्रक वर्ग जहां मैं प्रवेश के लिए एक कोड लिखा है, चला जाता है,

@org.springframework.stereotype.Controller 
public class RegController { 
    private static final Logger LOGGER = Logger 
      .getLogger(RegController.class.getName()); 


@RequestMapping(value = "/register.htm", method = RequestMethod.GET) 
public ModelAndView handleRequest(HttpServletRequest request, 
     HttpServletResponse response) throws Exception { 
    LOGGER.debug("ENTERING the contoller class"); 
    ModelAndView mav = new ModelAndView("register"); 
    LOGGER.debug("exiting the contoller class"); 
    return mav; 

} 

}

मैं एक पैकेज resource बुलाया बनाया है और

# Direct log messages to a log file 
log4j.appender.file=org.apache.log4j.RollingFileAppender 
log4j.appender.file.File=C:\\loging.log 
log4j.appender.file.MaxFileSize=1MB 
log4j.appender.file.MaxBackupIndex=1 
log4j.appender.file.layout=org.apache.log4j.PatternLayout 
log4j.appender.file.layout.ConversionPattern=%d{ABSOLUTE} %5p %c{1}:%L - %m%n 

में एक log4j.properties फ़ाइल बनाई है लेकिन मेरे लॉग C: ड्राइव में नहीं बनाए गए हैं।

क्या मुझे web.xml में कुछ कॉन्फ़िगर करने की आवश्यकता है? मैं पहले से ही log4j.jar फ़ाइल शामिल कर चुका हूं।

+0

इस लिंक को http: //www.mkyong देखें।com/spring-mvc/spring-mvc-log4j-integration-example/ – Swarne27

उत्तर

2

आपके प्रश्न के पास स्प्रिंग एमवीसी के साथ कुछ लेना देना नहीं है। यह बस एक Log4J विन्यास मुद्दा है। (कृपया अपना प्रश्न संपादित करें)

क्या आपने लॉगजर को सही तरीके से सेटअप किया है? (उदाहरण के लिए डीबग स्तर अनुमति देने के लिए, और लकड़हारा करने के लिए अपने file appender सेट)

अपने config में कुछ इस तरह है (मैं सिर्फ स्मृति से वाक्य रचना याद है, यह अपने आप को ठीक करता है, तो वहाँ कुछ भी गलत है)

log4j.rootLogger.level=INFO, file 
log4j.logger.your.package.RegController=DEBUG 

ऐसा कुछ।

साथ ही, सुनिश्चित करें कि आपके पास classpath में अन्य log4j.properties या log4j.xml नहीं है। Log4J शायद आपके बजाय उन्हें लोड करेगा, जिससे समस्या उत्पन्न हुई।

+0

कुछ ऑफ-विषय: मैं दृढ़ता से एसएलएफ 4 जे को अपनाने के लिए ओपी का सुझाव दूंगा। आप लॉगिंग के लिए बैकएंड के रूप में अभी भी लॉग 4 जे का उपयोग कर सकते हैं लेकिन यह कॉन्फ़िगरेशन को कम करता है, और आप भविष्य में –

7

आप अपने web.xml में

<context-param> 
     <param-name>log4jConfigLocation</param-name> 
     <param-value>/WEB-INF/resource/log4j.properties</param-value> 
    </context-param> 

    <listener> 
     <listener-class>org.springframework.web.util.Log4jConfigListener</listener-class> 
    </listener> 

इसके अंतर्गत निम्नलिखित की जरूरत है। तो यह ठीक काम करेगा।

+0

और/WEB-INF/संसाधन के तहत अपनी लॉगिंग बैकएंड बदल सकते हैं/इस कोड '# रूट के साथ फ़ाइल log4j.properties जोड़ें लकड़हारा विकल्प log4j.rootLogger = डीबग, फ़ाइल # पुनर्निर्देशन लॉग एक लॉग फ़ाइल को संदेश log4j.appender.file = org.apache.log4j.RollingFileAppender बिलाव घर log4j.appender.file.File = $ करने के लिए #outputs {} catalina.home /logs/myapp.log log4j.appender.file.MaxFileSize = 5MB log4j.appender.file.MaxBackupIndex = 10 log4j.appender.file.layout = org.apache.log4j.PatternLayout log4j। appender.file.layout.ConversionPattern =% d {yyyy-MM-dd एचएच: मिमी: एसएस}% -5 पी% सी {1}:% एल -% एम% एन' –

+0

एक आकर्षण की तरह काम करता है। धन्यवाद –

1

संसाधन फ़ोल्डर में निम्न log4j.properties फ़ाइल शामिल करें।

log4j.rootCategory=INFO,S,rollingFile 

log4j.appender.S =org.apache.log4j.ConsoleAppender 
log4j.appender.S.layout =org.apache.log4j.PatternLayout 
log4j.appender.S.layout.ConversionPattern = %d{yyyy-MM-dd HH:mm:ss} %c{1} [%p] %m%n 

log4j.appender.rollingFile = org.apache.log4j.DailyRollingFileAppender 

#provide path to your location where you want logs created. For now its logs folder of tomcat. 
log4j.appender.rollingFile.File = ${catalina.home}/logs/loging.log 
log4j.appender.rollingFile.Append = true 
log4j.appender.rollingFile.MaxFileSize=2000KB 
log4j.appender.rollingFile.MaxBackupIndex=9 

log4j.appender.rollingFile.Threshold = ALL 

log4j.appender.rollingFile.DatePattern = '.'yyy-MM-dd 
log4j.appender.rollingFile.layout = org.apache.log4j.PatternLayout 
log4j.appender.rollingFile.layout.ConversionPattern = %d{yyyy-MM-dd HH:mm:ss} %c{1} [%p] %m%n 

अपना कोड इस के साथ बदलें। निश्चित रूप से यह ठीक काम करेगा।

0
अपने web.xml में

इस कोड को जोड़ना

<context-param> 
     <param-name>log4jConfigLocation</param-name> 
     <param-value>/WEB-INF/resource/log4j.properties</param-value> 
    </context-param> 

    <listener> 
     <listener-class>org.springframework.web.util.Log4jConfigListener</listener-class> 
    </listener> 

और/वेब-INF/संसाधन के तहत/इस कोड

# Root logger option 
    log4j.rootLogger=DEBUG, file # Redirect log messages to a log file 
    log4j.appender.file=org.apache.log4j.RollingFileAppender #outputs to 
    Tomcat home log4j.appender.file.File=${catalina.home}/logs/myapp.log 
    log4j.appender.file.MaxFileSize=5MB 
    log4j.appender.file.MaxBackupIndex=10 
    log4j.appender.file.layout=org.apache.log4j.PatternLayout 
    log4j.appender.file.layout.ConversionPattern=%d{yyyy-MM-dd HH:mm:ss} 
    %-5p %c{1}:%L - %m%n 

साथ और अपने क्लास ऐड में फ़ाइल log4j.properties जोड़ने इस कोड को

private static final Logger logger = Logger.getLogger(NameOfYourrClass.class); 

और अपने समारोह के अंदर इस कोड को जोड़ना

logger.debug("This is Error message", new Exception("Testing"));