System.out To Log4J

Порой необходимо сделать так, чтоб log4j выводит аутпут на консоль, при использовании e.printStackTrace() и System.out.println(""); Для этого при загрузке приложения достаточно выполнить следующий код.



   private static final Logger logger = Logger.getLogger("sdout");

    public static void tieSystemOutAndErrToLog() {
        System.setOut(createLoggingProxy(System.out));
        System.setErr(createLoggingProxy(System.err));
    }

    public static PrintStream createLoggingProxy(final PrintStream realPrintStream) {
        return new PrintStream(realPrintStream) {
            public void print(final String string) {
                realPrintStream.print(string);
                logger.info(string);
            }
        };
    }

Комментариев нет:

Отправить комментарий