Log4j печатает трассировку стека ошибок на локальном, но не на сервере
У меня есть приложение Java, работающее на экземпляре Amazon EC2. И я использую Apache log4j для поддержки ERROR
так же как DEBUG
журналы для моего приложения.
Но в последнее время я не могу записать трассировку стека ошибок, используя logger.error(String Message, Throwable t)
,
Я попытался войти, как это,
final Logger logger = LoggerFactory.getLogger(MyClass.class);
StringWriter sWriter = new StringWriter();
e.printStackTrace(new PrintWriter(sWriter));
logger.error("Exception occured while fetching count from DB", sWriter);
Но .log
файл отображает только сообщение Exception occurred while fetching count from DB
мой log4j.properties
файл выглядит так
# Root logger
log4j.rootLogger=INFO, RollingAppender
# LOG4J daily rolling log files configuration
log4j.rootLogger=${loggingType}, RollingAppender
log4j.appender.RollingAppender=org.apache.log4j.DailyRollingFileAppender
log4j.appender.RollingAppender.File=${logFile}
log4j.appender.RollingAppender.DatePattern='.'yyyy-MM-dd
log4j.appender.RollingAppender.layout=org.apache.log4j.PatternLayout
log4j.appender.RollingAppender.layout.ConversionPattern=%d [%p] %c %M - %m%n
Если я запускаю приложение локально, я вижу трассировку стека печати, но это не работает на моем экземпляре Amazon EC2.
log4j версия 1.7.2
Версия JDK 1.7.0_151
Любая помощь приветствуется. Благодарю вас.
1 ответ
Попробуйте использовать
final Logger logger = LoggerFactory.getLogger(getClass());
вместо
final Logger logger = LoggerFactory.getLogger(MyClass.class);
Первый позволяет использовать имя фактического класса во всех классах по всей иерархии наследования.