Log4j исключает определенные файлы в пакете - PullRequest
0 голосов
/ 06 мая 2018

У меня есть файл журнала для всего проекта, но теперь я хотел исключить журнал файла определенного класса из журнала по умолчанию и записать в отдельный файл.В проекте около 100 файлов классов.Этот файл класса, который я хотел записать отдельно, находится внутри пакета из 15 файлов.

Я попытался установить, но это не работает.Есть ли способ, которым я могу это сделать.

Заранее спасибо.

1 Ответ

0 голосов
/ 06 мая 2018

Просто создайте отдельный регистратор и приложение для этого класса.

Например, предположим, у вас есть 3 класса в пакете, и вы хотите, чтобы один из них записывал в другой файл журнала. В приведенном ниже примере класс Example2 запишет в свой собственный файл, а классы Example1 и Example3 запишут в другой файл.

Example1.java:

package my;

import org.apache.log4j.Logger;

public class Example1 {
    private static final Logger logger = Logger.getLogger(Example1.class);

    public static void main(String[] args){
        logger.info("info from my.Example1");

        Example2 e2 = new Example2();
        e2.doSomething();

        Example3 e3 = new Example3();
        e3.doSomething();
    }
}

Example2.java

package my;

import org.apache.log4j.Logger;

public class Example2 {
    private static final Logger logger = Logger.getLogger(Example2.class);

    public void doSomething(){
        logger.info("This is from Example2 class");
    }
}

Example3.java:

package my;

import org.apache.log4j.Logger;

public class Example3 {
private static final Logger logger = Logger.getLogger(Example3.class);

    public void doSomething(){
        logger.info("This is from Example3 class");
    }
}

log4j.properties

log4j.rootLogger=INFO, file1, stdout

log4j.appender.stdout=org.apache.log4j.ConsoleAppender
log4j.appender.stdout.layout=org.apache.log4j.PatternLayout
log4j.appender.stdout.layout.ConversionPattern=%5p [%t] (%F:%L) - %m%n

log4j.appender.file1=org.apache.log4j.RollingFileAppender
log4j.appender.file1.File=logs/file1.log
log4j.appender.file1.MaxFileSize=10MB
log4j.appender.file1.MaxBackupIndex=1
log4j.appender.file1.layout=org.apache.log4j.PatternLayout
log4j.appender.file1.layout.ConversionPattern=%p %t %c - %m%n

log4j.appender.file2=org.apache.log4j.RollingFileAppender
log4j.appender.file2.File=logs/file2.log
log4j.appender.file2.MaxFileSize=10MB
log4j.appender.file2.MaxBackupIndex=1
log4j.appender.file2.layout=org.apache.log4j.PatternLayout
log4j.appender.file2.layout.ConversionPattern=%p %t %c - %m%n

log4j.logger.my.Example2=INFO, file2, stdout
log4j.additivity.my.Example2=false

Вот вывод:

file1.log:

INFO main my.Example1 - info from my.Example1
INFO main my.Example3 - This is from Example3 class

file2.log:

INFO main my.Example2 - This is from Example2 class
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...