यदि आप स्प्रिंग का उपयोग करते हैं तो आप कर सकते हैं:
1) एक log4j विन्यास फाइल बनाएं, जैसे "/WEB-INF/classes/log4j-myapp.properties" इसे "log4j.properties" नाम न दें।
उदाहरण:
log4j.rootLogger=ERROR, stdout, rollingFile
log4j.appender.stdout=org.apache.log4j.ConsoleAppender
log4j.appender.stdout.layout=org.apache.log4j.PatternLayout
log4j.appender.stdout.layout.ConversionPattern=%d %p [%c] - <%m>%n
log4j.appender.rollingFile=org.apache.log4j.RollingFileAppender
log4j.appender.rollingFile.File=${myWebapp-instance-root}/WEB-INF/logs/application.log
log4j.appender.rollingFile.MaxFileSize=512KB
log4j.appender.rollingFile.MaxBackupIndex=10
log4j.appender.rollingFile.layout=org.apache.log4j.PatternLayout
log4j.appender.rollingFile.layout.ConversionPattern=%d %p [%c] - %m%n
log4j.appender.rollingFile.Encoding=UTF-8
हम "myWebapp-इंस्टेंस-रूट" को बाद में बिंदु (3) पर परिभाषित करेंगे
2) web.xml में विन्यास स्थान निर्दिष्ट करें:
<context-param>
<param-name>log4jConfigLocation</param-name>
<param-value>/WEB-INF/classes/log4j-myapp.properties</param-value>
</context-param>
3) अपने वेब के रूट के लिए एक अद्वितीय चर नाम निर्दिष्ट करें , जैसे "myWebapp-इंस्टेंस-रूट"
<context-param>
<param-name>webAppRootKey</param-name>
<param-value>myWebapp-instance-root</param-value>
</context-param>
4) एक Log4jConfigListener जोड़ें:
<listener>
<listener-class>org.springframework.web.util.Log4jConfigListener</listener-class>
</listener>
यदि आप एक अलग नाम चुनते हैं, तो इसे log4j-myapp.properties में भी बदलना याद रखें।
मेरा लेख देखें (केवल इतालवी ... लेकिन यह समझने योग्य होना चाहिए):
http://www.megadix.it/content/configurare-path-relativi-log4j-utilizzando-spring
अद्यतन (2009/08/01)
मैंने अपना लेख अंग्रेजी में अनुवाद किया है:
http://www.megadix.it/node/136