Java-переводчик для печати на удобные логгеры - PullRequest
2 голосов
/ 20 февраля 2011

Я часто вижу (и повторно использую) сторонний исходный код, который не имеет соответствующего вывода.Существует ли какой-либо инструмент (переводчик кода), который преобразует вывод println в подходящий код каркаса журнала

private void processCreateTraining() {
    System.out.println("Training set created");
    //..
}

во что-то вроде

private void processCreateTraining() {
    LOG.info("Training set created");
    //..
}

Это можно сделать с помощью поиска и заменыили структурная замена в IDEA.Но есть ли более изощренное / надежное решение, обеспечивающее большую гибкость: поддержка различных структур ведения журналов, серьезность запроса при замене вхождения, конкатенация строк через StringBuilder.

Ответы [ 2 ]

1 голос
/ 20 февраля 2011

Если я сталкиваюсь со сторонними библиотеками, которые используют println повсеместно, я не использую его.Это признак плохой работы, и это подразумевает (для меня), что, вероятно, будут другие более коварные проблемы с кодом.

Но нет, я не знаю ни одного плагина или инструмента для решенияконкретно с этим делом.

0 голосов
/ 20 февраля 2011

Конечно, попробуйте что-то вроде этого:

public static void main(String[] args) {
    WrappedOutputStream los = new WrappedOutputStream();
    System.setOut(new PrintStream(los, true));
    System.out.println("catch me");
}

WrappedOutputStream.java

class WrappedOutputStream extends ByteArrayOutputStream { 
    public void flush() throws IOException {
        String str = "WRAPPED: " + this.toString();
        // process
    }
}
...