[RESOLVIDO] Log4J - Separando logs

Olá, estou desenvolvendo uma aplicação e preciso separa os logs pelo seu respectivo tipo. Por exemplo: erros eu quero q vão para um arquivo e info para outro. No entanto, não estou conseguindo filtrar isto.
Segue meu log4j.properties

log4j.rootLogger=ERROR, A1,A2
log4j.appender.A1=org.apache.log4j.ConsoleAppender
log4j.appender.A1.layout=org.apache.log4j.PatternLayout
log4j.appender.A1.layout.ConversionPattern=%d [%t] %-5p %c - %m%n

log4j.appender.A2=org.apache.log4j.RollingFileAppender
log4j.appender.A2.maxFileSize=1024KB
log4j.appender.A2.layout=org.apache.log4j.PatternLayout
log4j.appender.A2.file=${catalina.home}${file.separator}logs${file.separator}error.log
log4j.appender.A2.layout.ConversionPattern=%d [%t] %-5p %c - %m%n

log4j.category.AppLogging=INFO,A3
log4j.appender.A3=org.apache.log4j.DailyRollingFileAppender
log4j.appender.A3.DatePattern='.'yyyy-MM-dd
log4j.appender.A3.layout=org.apache.log4j.PatternLayout
log4j.appender.A3.layout.ConversionPattern=%-22d{dd/MM/yyyy HH:mm:ss} - %m%n
log4j.appender.A3.file=${catalina.home}${file.separator}logs${file.separator}admin.log

Para info ele funciona perfeitamente. Meu problema é que ele também manda as mensagens de info para o error.log

Olá,

O log4j não disponibiliza uma maneira de vc fazer isso que vc quer. Funciona desta maneira: se vc configurar para um appender usar um nível por exemplo WARN, esse appender irá registrar os níveis FATAL, ERROR e WARN pq esses outros níveis são maiores que WARN. Então se vc usar um appender para usar o nível INFO ele irá usar FATAL, ERROR, WARN e INFO. E no outro appender vc irá usar o nível ERROR que irá obter os níveis FATAL e ERROR. Abaixo os valores em números inteiros de cada nível

OFF: 2147483647
FATAL: 50000
ERROR: 40000
WARN: 30000
INFO: 20000
DEBUG: 10000
TRACE: 5000
ALL: -2147483648

O que dá pra fazer é uma gambiarra criando um appender customizado que irá usar apenas o nível que vc deseja.

public class CustomRollingFileAppender extends RollingFileAppender{

	@Override
	public void append(LoggingEvent event) {
		
		// Ignora todos os eventos diferentes do tipo ERROR
		if(event.getLevel().equals(Level.ERROR)){
			super.append(event);
		}	
	}

}

Abraço,

Istou resolveu meu problema.

Valeu!