Я хотел бы, чтобы wso2 осуществлял поиск по моим еженедельным свернутым журналам, но он ищет по ежедневным журналам.
Я создал собственный пользовательский appender и добавил jar в папку lib в Carbon home, а затем добавил ниже свойства log4j. Теперь он может катиться еженедельно.
Как я могу настроить wso2 для поиска в моем журнале?
Спасибо за вашу помощь.
Мой пользовательский appender:
package com.org.gateway.common.log;
import org.apache.log4j.DailyRollingFileAppender;
import org.apache.log4j.spi.LoggingEvent;
import org.wso2.carbon.context.CarbonContext;
import org.wso2.carbon.utils.logging.LoggingUtils;
import org.wso2.carbon.utils.logging.TenantAwareLoggingEvent;
import java.io.File;
import java.io.IOException;
import java.security.AccessController;
import java.security.PrivilegedAction;
public class CustomAppender extends DailyRollingFileAppender {
private static final String LOG_FILE_PATH = org.wso2.carbon.utils.CarbonUtils.getCarbonHome() + File.separator + "repository" +
File.separator + "logs" + File.separator + "messages" + File.separator;
protected boolean fileAppend = true;
protected int bufferSize = 8 * 1024;
protected boolean bufferedIO = false;
@Override
protected void subAppend(LoggingEvent loggingEvent) {
Object tenantIdObj = AccessController.doPrivileged(new PrivilegedAction() {
public Integer run() {
return CarbonContext.getThreadLocalCarbonContext().getTenantId();
}
});
int tenantId = (Integer) tenantIdObj;
String logFileName = "test_file";
try {
this.setFile(LOG_FILE_PATH + logFileName, this.fileAppend, this.bufferedIO, this.bufferSize);
} catch (IOException ex) {
ex.printStackTrace();
}
String serviceName = CarbonContext.getThreadLocalCarbonContext().getApplicationName();
final TenantAwareLoggingEvent tenantAwareLoggingEvent = LoggingUtils
.getTenantAwareLogEvent(loggingEvent, tenantId, serviceName);
AccessController.doPrivileged(new PrivilegedAction() {
public Void run() {
CustomAppender.super.subAppend(tenantAwareLoggingEvent);
return null; // nothing to return
}
});
}
}
Я добавил эти строки в log4j.properties
log4j.properties:
log4j.category.SERVICE_LOGGER=INFO, NEW_CARBON_LOGFILE
log4j.additivity.SERVICE_LOGGER=false
log4j.appender.NEW_CARBON_LOGFILE=com.org.gateway.common.log.CustomAppender
log4j.appender.NEW_CARBON_LOGFILE.File=${carbon.home}/repository/logs/${instance.log}/wso2carbon${instance.log}.log
log4j.appender.NEW_CARBON_LOGFILE.Append=true
log4j.appender.NEW_CARBON_LOGFILE.layout=org.wso2.carbon.utils.logging.TenantAwarePatternLayout
log4j.appender.NEW_CARBON_LOGFILE.layout.ConversionPattern=TID: [%T] [%S] [%d] %P%5p {%c} - %x %m {%c}%n
log4j.appender.NEW_CARBON_LOGFILE.layout.TenantPattern=%U%@%D [%T] [%S]
log4j.appender.NEW_CARBON_LOGFILE.threshold=INFO
log4j.appender.NEW_CARBON_LOGFILE.DatePattern='.'yyyy-ww