Какой самый короткий способ инициализации log4j в вашем основном методе? - PullRequest
4 голосов
/ 31 октября 2009

Я хочу, чтобы все записывалось на консоль, и не хочу иметь дело с созданием файлов log4j.xml и т. Д. Я создаю прототипы некоторых библиотек и хочу увидеть их полный вывод журнала.

Я бы хотел сохранить его как можно более чистым и не вводить ненужные зависимости, такие как Spring и т. Д.

Ответы [ 5 ]

6 голосов
/ 01 ноября 2009

Я использую следующее:

Logger.getRootLogger().setLevel(Level.ALL);
Layout layout = new PatternLayout("%d [%t] %-5p %c %x - %m%n");
Logger.getRootLogger().addAppender(new ConsoleAppender(layout));
2 голосов
/ 01 ноября 2009

Если вы хотите полностью исключить файлы конфигурации, вы можете выполнить простую настройку в несколько строк, например:

Properties props = new Properties();
props.setProperty("log4j.appender.CONSOLE",org.apache.log4j.ConsoleAppender");
props.setProperty("log4j.appender.CONSOLE.Threshold", "TRACE");
props.setProperty("log4j.appender.CONSOLE.layout,"org.apache.log4j.PatternLayout");
props.setProperty("log4j.appender.CONSOLE.layout.ConversionPattern","%-5p %d{HH:mm:ss} %-30C{1} | %m%n);"
props.setProperty("log4j.rootLogger", "TRACE, CONSOLE");
PropertyConfigurator.configure(props);
1 голос
/ 31 октября 2009

Самый простой способ - поместить следующий код в файл log4j.properties в корне пути к классам (т. Е. В папке с исходным кодом или ресурсами):

log4j.rootLogger=info, A1
# A1 is set to be a ConsoleAppender.
log4j.appender.A1=org.apache.log4j.ConsoleAppender

# A1 uses PatternLayout.
log4j.appender.A1.layout=org.apache.log4j.PatternLayout
log4j.appender.A1.layout.ConversionPattern=[%p] %c{2} %m%n
1 голос
/ 31 октября 2009

Кажется, это делает трюк.

import org.apache.log4j.BasicConfigurator;

public class Main {

    private static void initializeLogger() {
        BasicConfigurator.configure();
    }

    public static void main(String args[]) {
        Main.initializeLogger();
    }
}
0 голосов
/ 31 октября 2009

Вы можете создать коллекцию Properties с необходимыми значениями и передать ее методу PropertyConfigurator.configure(Properties).

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...