Имам приложение, работещо на Tomcat 7.0.2 и използващо log4j за регистриране. Малко след стартирането на tomcat следните съобщения се появяват в catalina.out:
INFO: Initializing log4j from [file:///export0/home/tomcat/appconf/log4j.xml]
log4j:WARN Unrecognized element rollingPolicy
log4j:WARN Please set a rolling policy for the RollingFileAppender named 'PERFFILE'
log4j:WARN Unrecognized element rollingPolicy
log4j:WARN Please set a rolling policy for the RollingFileAppender named 'FILE'
и когато действителните ми съобщения в журнала трябва да се отпечатат, виждам следното:
log4j:ERROR No output stream or file set for the appender named [FILE].
log4j:ERROR No output stream or file set for the appender named [PERFFILE].
Тези две добавки се дефинират така:
<appender name="FILE" class="org.apache.log4j.rolling.RollingFileAppender">
<param name="Append" value="true" />
<param name="File" value="${catalina.base}/logs/server.log" />
<rollingPolicy class="com.myapp.logging.AgingTimeBasedRollingFilePolicy">
<param name="fileNamePattern" value="${catalina.base}/logs/archive/server.%d{yyyy-MM-dd}.log.gz" />
<param name="keepFilesForDays" value="30" />
</rollingPolicy>
<layout class="com.myapp.logging.jboss.WebappAwarePattern">
<param name="ConversionPattern" value="%d{ISO8601}{${server.localTimezone}} %p [%X{webapp}:%c{2}] %m%n" />
</layout>
</appender>
<appender name="PERFFILE" class="org.apache.log4j.rolling.RollingFileAppender">
<param name="Append" value="true" />
<param name="File" value="${catalina.base}/logs/performance.log" />
<rollingPolicy class="com.myapp.logging.AgingTimeBasedRollingFilePolicy">
<param name="fileNamePattern" value="${catalina.base}/logs/archive/performance.%d{yyyy-MM-dd}.log.gz" />
<param name="keepFilesForDays" value="30" />
</rollingPolicy>
<layout class="com.myapp.logging.jboss.WebappAwarePattern">
<param name="ConversionPattern" value="%d{ISO8601}{${server.localTimezone}} %p [%X{webapp}:%c{2}] %throwable{0} %m%n" />
</layout>
</appender>
Трудно ми беше да разбера защо възникват тези грешки, но не получих резултат (вероятно моят log4j.xml не може да бъде анализиран правилно)
Така че всякакви идеи защо това се случва ще бъдат високо оценени.
Благодаря предварително!