Запись устаревшего e.printStractTrace () в log4j - PullRequest
0 голосов
/ 21 февраля 2012

У меня есть какой-то устаревший код, в котором много e.printStackTrace(), они не напечатаны в файле log4j по понятным причинам.Последний код имеет log.error("Exception occured in class::method",e);.Есть ли стандартный способ регистрации этих устаревших e.printStackTrace() в log4j?

Вот мои log4j.properties.Я настраиваю файл свойств / имя файла журнала в коде

PropertyConfigurator.configure("log4j.properties");
setLog4jFile("log.txt");

private static void setLog4jFile(String logFileName) {
        try {
            Logger rootLogger = Logger.getRootLogger();
            RollingFileAppender appender = new RollingFileAppender(new PatternLayout("%p %t %c - %m%n"), logFileName, false);
            appender.setMaxFileSize("10000KB");
            appender.setMaxBackupIndex(10);
            rootLogger.addAppender(appender);
        }catch (Exception e)    {
            e.printStackTrace();
        }
}

log4j.properties

log4j.rootCategory=info, 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  

1 Ответ

2 голосов
/ 21 февраля 2012

Вы можете перенаправить стандарт System.err на log4j.

Этот вопрос и ответы на него должны помочь:

log4j перенаправить стандартный вывод в DailyRollingFileAppender

Если возможно, я все же рекомендовал бы переписать printStacktrace в операторы журнала.

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